C# 在datagridview的1列中插入图像

C# 在datagridview的1列中插入图像,c#,winforms,datagridview,C#,Winforms,Datagridview,基本上我得到了一个datagridview,我想在第一列中插入图像,在其余列中插入文本。请注意,datagridview绑定到一个源,我在其中插入行 在图像要求之前,我通常只将行添加为字符串数组,如下所示: string[] row = **value**; myDataTable.Rows.Add(row); 这一切都很好。但是现在我不知道如何添加映像(我已经在datatable中添加了一个image列)。显然,我不能在字符串数组中插入位图图像。 也不能按如下方式插入图像和字符串数组: my

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

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

string[] row = **value**;
myDataTable.Rows.Add(row);
这一切都很好。但是现在我不知道如何添加映像(我已经在datatable中添加了一个image列)。显然,我不能在字符串数组中插入位图图像。 也不能按如下方式插入图像和字符串数组:

myDataTable.Rows.Add(image, textArray);
因为这将导致在第二列中插入整个数组,而不是在每一列中插入特定项

如何执行此操作?

而不是字符串数组:

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

我们可以将任何类型的数据绑定到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);  
    }  
}