我在DataGridView上寻找类似的东西:
Image | Text | Text | Text | Image | Text
基本上,我只想在同一行上的图像单元格和文本单元格.
我能够使用不同的类型,例如:复选框,文本等…
但是我无法使用它来处理图像.
我收到此错误:从’System.String’到’System.Drawing.Image’的无效转换
有人知道解决方案或有关我应该怎么做的建议吗?
谢谢
解决方法
在某些单元格中使用DataGridViewImageColumn类型的列显示文本相对容易.
您需要做的就是用DataGridViewTextBoxCell替换所需的单元格.
例如,如果我将以下图像列添加到我的网格中:
DataGridViewImageColumn imageColumn = new DataGridViewImageColumn(); imageColumn .Name = "ImageColumn"; imageColumn .HeaderText = "An Image!"; Image i = Image.FromFile(@"C:\Pictures\TestPicture.jpg"); imageColumn.Image = i; dataGridView1.Columns.Add(imageColumn);
你可以用这样的文本替换给定的单元格(这里是一个按钮处理程序,但你也可以在数据绑定完整处理程序中的某个地方执行).
private void button1_Click(object sender,EventArgs e) { dataGridView1.Rows[3].Cells["ImageColumn"] = new DataGridViewTextBoxCell(); dataGridView1.Rows[3].Cells["ImageColumn"].Value = "Some text!"; }
如果您需要不同的图像(需要绑定到图像类型的属性)并且需要不同的文本,此解决方案会为您留下一些工作.由于图像列的Value属性是Image类型,因此您无法使用相同的绑定.
您可以创建自己的已覆盖图像列来处理此问题,但这可能会有些工作,可能不会为自己付出代价而只需设置直接需要文本的单元格的值.