在c#中将图像添加到DataGridViewImageColumn

时间:2013-01-16 11:20:09

标签: c# image datagridviewcolumn

我正在尝试通过代码或甚至在deaign时将图像添加到DataGridViewImageColumn

它始终是一个默认的c#图像,其中'x'表示没有图像

我在微软上试过这段代码

    Icon treeIcon = new Icon(this.GetType(), "tree.ico");
DataGridViewImageColumn iconColumn = new DataGridViewImageColumn();
iconColumn.Image = treeIcon.ToBitmap();
iconColumn.Name = "Tree";
iconColumn.HeaderText = "Nice tree";
dataGridView1.Columns.Insert(2, iconColumn);

。但是我在资源中添加了.ico还尝试了文件路径 - 异常结果表示在表单类中找不到tree.ico

我用图像替换了图标

            ataGridViewImageColumn img = new DataGridViewImageColumn();
            img.ValuesAreIcons = true;
            Image image = Image.FromFile("C:/Users/../Desktop/app_edit.png");
            img.Image = image;
            showprocessed_dataGridView.Columns.Add(img);
            img.HeaderText = "Image";
            img.Name = "img";

这导致ataGridViewImageColumn中显示的默认“无图像”是什么解决了这个问题?是图像格式还是什么!! 任何帮助将不胜感激..

3 个答案:

答案 0 :(得分:0)

Microsoft的代码看起来正在更改列的标题中的图像。它不会添加包含图像的行。为此,您需要向绑定到包含正确图像数据的DataGridView的数据源添加记录,或手动创建添加到DataGridViewRow的{​​{1}}。

答案 1 :(得分:0)

使用RowDataBound事件将图像绑定到网格

protected void gridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
 if(e.Row.RowType == DataControlRowType.DataRow)
 {
  Image imgGridview = (Image) e.Row.FindControl("imgGrv");
  imgGridview.ImageUrl = "images/test.gif";
 }
}

答案 2 :(得分:-2)

您必须在编写第二个代码时将img.ValuesAreIconstrue更改为false。 它会起作用,当我使用你的代码解决这个问题时,它发生在我身上。