在datagridview中显示图标文件

时间:2015-01-09 09:10:22

标签: c# winforms datagridview

我想在datagridview列中显示图标文件,但我遇到了一些问题:
see this pic

这是我的代码:

Icon ico = Icon.ExtractAssociatedIcon("C:/1419608299489.jpg");
DataGridViewImageColumn image = new DataGridViewImageColumn();
image.HeaderText = "Image";
image.Icon = ico;
dataGridView1.Columns.Add(image);

2 个答案:

答案 0 :(得分:0)

我认为这就是你要搜索的内容(见dataGridView Image not displaying):

        Icon icon = Icon.ExtractAssociatedIcon(@"filepath");

        List<MyItem> items = new List<MyItem>();
        for (int i = 0; i < 10; i++)
        {
            items.Add(new MyItem { Key = i, value = icon.ToBitmap() });
        }

        this.dataGridView1.AutoGenerateColumns = false;
        this.dataGridView1.Columns.Clear();
        this.dataGridView1.Columns.Add("Key", "Key");
        this.dataGridView1.Columns.Add(new DataGridViewImageColumn() { HeaderText = "Status" });

        this.dataGridView1.Columns[0].DataPropertyName = "Key";
        this.dataGridView1.Columns[1].DataPropertyName = "value";

        this.dataGridView1.DataSource = items;

MyItem 是......像这样:

class MyItem
{
    public int Key { get; set; }

    public Image value { get; set; }
}

结果:

Result

答案 1 :(得分:0)

检查以下内容:

  • 图像文件肯定存在。
  • 图像文件未损坏(您可以使用图像查看器访问它)。
  • 您有权访问驱动器C :(如果没有,请以管理员身份运行该程序)。

如果上述情况属实,请尝试将文件复制到项目中。我实际上并不理解为什么要将图像文件保留在项目之外。这进一步简化了事情,因为您可以使用相对路径来访问文件。