使用C#在dataGridView中显示位图

本文关键字:显示 位图 dataGridView 使用 | 更新日期: 2023-09-27 17:58:52

我想在dataGridView中显示一些图像。我有两个组件,dataGridView、dataTable和一个位图。DataTable有两列。

dataGridview.source = dataTable;

现在,我想在dataGridView中显示三列,其中两列来自dataTable,第三列来自位图。如果更容易的话,我可以修改dataTable和dataGridView。

有可能做到吗?

使用C#在dataGridView中显示位图

有几种方法可以实现这一点。

DataGridView有一种图像列类型,即DataGridViewImageColumn,它具有一个可以向其传递位图的图像属性。

以下内容应该有效:

private void createGraphicsColumn(Bitmap image)
{
    DataGridViewImageColumn imageColumn = new DataGridViewImageColumn();
    imageColumn.Image = image;
    imageColumn.Name = "Tree";
    imageColumn.HeaderText = "Nice tree";
    dataGridView1.Columns.Insert(2, imageColumn);
}

如果需要,还可以设置此列中各个单元格的"值"属性。

上面的例子加上许多其他的讨论可以在MSDN上找到。


另一种选择是将图像添加到数据表中——这将自动生成图像列,但数据表中的新列需要为字节数组类型。

我发现以下代码可以用快速谷歌做到这一点:

public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
    MemoryStream ms = new MemoryStream();
    imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
    return  ms.ToArray();
}

如果你真的采用这种方法,我建议你做一点研究,找到创建字节数组的最佳方法——我不能保证代码是最好的。

只需创建带有图像列的数据表,并将图像添加到中

dtMain.Columns.Add("ImageColumn", typeof(Image));
dtMain.Rows.Add(Image.FromFile(photopath + "1.jpg"));

在下载完整代码http://tablegridview.blogspot.in