c# - 无法将图片从 picturebox 保存到 datagridview

标签 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

最佳答案

使用 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# - 无法将图片从 picturebox 保存到 datagridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22178566/

相关文章:

c# - 在 C# 中获取 2 个列表中的最大年龄的名称

c# - 检测从 C# 应用程序最小化的所有窗口

c++ - VTK + QT 项目 : error LNK1169: one or more multiply defined symbols found

c++ - 当前缀字符串与非前缀字符串相邻时,字符串文字连接失败?

visual-studio - Visual Studio F5 导致连接屏幕?

c# - 这在技术上是 "Hello World"的 O(1) 算法吗?

c# - EF Code First 多对多关系在链接表中存储附加数据

c# - 需要澄清 : abstract classes preferred over interfaces. 原因:他们将契约(Contract)与实现分离

c# - 具有 Like 子句功能的自动完成文本框示例 %hello% C# Windows

C# Windows 窗体控件到图像?