在datagridview中的1列中插入图像

时间:2014-02-19 19:11:12

标签: c# winforms datagridview

基本上我有一个datagridview,我希望在第一列中插入图像,在其余列中插入文本。请注意,datagridview绑定到我插入行的源。

在图像要求之前我曾经只是将行添加为字符串数组,如下所示:

string[] row = **value**;
myDataTable.Rows.Add(row);

哪一切都运作良好。但是现在我不知道如何添加图像(我已经在数据表中添加了一个图像列)。显然,我无法在字符串数组中插入位图图像。 我也不能插入图像和字符串数组,如下所示:

myDataTable.Rows.Add(image, textArray);

因为它会导致在第二列中插入整个数组,而不会在每列中插入特定项目。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

You can pass an array of objects而不是字符串数组:

object[] row = new object[] { image, "string 1", "string 2" };
myDataTable.Rows.Add(row);

答案 1 :(得分:0)

我们可以将任何类型的数据绑定到DataGridViewImageColumn。我们只需要处理CellFormatting事件就可以将数据转换为图像。例如,我们将一些图像路径绑定到列,我们可以按照下面的代码显示图像:

private void dataGridView1_CellFormatting(object sender,DataGridViewCellFormattingEventArgs e)  
{  
    if (this.dataGridView1.Columns[e.ColumnIndex] is DataGridViewImageColumn)  
    {  
        string imagePath = (e.Value ?? "").ToString().Trim();  
        if (imagePath != "") 
            e.Value = Image.FromFile(imagePath);  
    }  
}