我的数据库中有一个图像路径,我想在gridview中显示其他表字段的图像(我有ID,Name,ImagePath,Date)。 我曾尝试使用sqlDataReader,但它只显示了Image路径。我想让它显示图像本身。 有人可以帮我看看如何查看所有图片吗?
答案 0 :(得分:0)
如果它是您所指的DataGridView,您可能已经注意到Column ValueType可以设置为DataGridViewImageColumn。
设置后,列单元格将显示位图
现在,由于您(我认为)DataSource正在为您提供图像文件的路径,您可以将该字符串值分配给隐藏列的单元格。
当DataSource(或其他任何东西)更改了该隐藏单元格的值时,您可以使用它来加载它指向的图像。
这里我假设设置为DataGridViewImageColumn的Column是Column [1],隐藏列是Column [0]:
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if ((e.ColumnIndex == 0) & (e.RowIndex >= 0))
{
string sFileName = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
using (Bitmap _bitmap = new Bitmap(sFileName, true))
{
this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 1].Value = new Bitmap(_bitmap);
}
}
}
最好不要直接使用图像文件来加载位图,因为GDI ++会将该图像文件锁定在磁盘上。 所以我使用Image的Bitmap副本并将其传递给Cell Value。