无法将图片从picturebox保存到datagridview

时间:2014-03-04 17:16:01

标签: c# winforms visual-studio datagridview

我已经看过如何使用光标捕获屏幕的this教程。 现在我添加了一个计时器和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

1 个答案:

答案 0 :(得分: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);
  }
}