我已经看过如何使用光标捕获屏幕的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);
}
}
但我得到的是这样的白色图像:
我无法保存picturebox
上显示的内容并将其添加到datagridview
答案 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);
}
}