2014-03-04 65 views
2

我見過this關於如何用光標捕捉屏幕的教程。 現在我添加了一個計時器和datagridview,我想將每個捕獲保存在datagridview中。下面是我做的:無法將圖片從圖片框保存到datagridview

private void Display(Bitmap desktop) 
{ 
    Graphics g; 
    Rectangle r; 
    if (desktop != null) 
    { 
     r = new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height); 
     g = pictureBox1.CreateGraphics(); 
     g.DrawImage(desktop, r); 
     g.Flush(); 

      Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height, g); 

     dataGridView1.Rows.Add(bmp); 
    } 
} 

但我得到的是白色的相似圖片:

enter image description here

我不能達到的地步,我可以節省picturebox什麼出現,並將其添加到datagridview

回答

2

使用CreateGraphics是在屏幕上的臨時圖形,所以圖像不會傳輸到位圖。

試着畫,而不是直接:

private void Display(Bitmap desktop) { 
    if (desktop != null) { 
    Bitmap bmp = new Bitmap(pictureBox1.ClientSize.Width, 
          pictureBox1.ClientSize.Height); 
    using (Graphics g = Graphics.FromImage(bmp)) { 
     g.DrawImage(desktop, Point.Empty); 
    } 
    pictureBox1.Image = bmp; 
    dataGridView1.Rows.Add(bmp); 
    } 
} 
+0

以及它並保存捕獲的'datagridview',但如何看待它picturebox'每次在'它之前添加到DataGridView –

+1

@MagedEWilliam更新後與PictureBox圖像屬性顯示相同的位圖。 – LarsTech

+0

不錯,但如何讓它成爲'jepg'的一半結果 –