我看过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
的位置 最佳答案
使用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);
}
}
关于c# - 无法将图片从图片盒保存到datagridview,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22178566/