全部: 我是一个使用DataGridView1的新手,它通过Visual Studio数据源函数绑定到SQL Server数据库表。 我在DataGrid中填充了表格中的所有列,包括一个包含Blobbed图像的列,它在DataGridView中正确显示为图像的一个切片。 我希望用户能够单击包含图像切片的DataGridView1单元格并启动一个新表单,其中特定图像作为背景(或者至少填充同一表单上的Picturebox),但是我似乎无法在单击的单元格中引用特定图像... 我尝试过使用" DataGridViewImageColumn"像:
imageColumn = new DataGridViewImageColumn();
imageColumn.Image = this.imageDataGridViewImageColumn.Image;
frmPic.BackgroundImage = imageColumn.Image;
有人可以建议使用正确的代码来引用此特定图像吗?
答案 0 :(得分:0)
我认为你可以使用 dataGridView_CellClick 事件处理程序,
所以你可以这样做:
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
// set index to be the pic column, assume that pic in column 0
int index = 0;
// just check that the clicked cell is the right cell
// and every thing is okay.
if (dataGridView.CurrentCell.ColumnIndex.Equals(index) && e.RowIndex != -1)
if (dataGridView.CurrentCell != null && dataGridView.CurrentCell.Value != null)
{
// cast to image
Bitmap img = (Bitmap)dataGridView.CurrentCell.Value;
// load image data in memory stream
MemoryStream ms = new MemoryStream();
img.save(ms, ImageFormat.Jpeg);
// now you can open image in any picBox by memory stream.
// if you want to open pic in other form, you need to pass memory
// stream to this form, e.g., in constructor.
// open other form
NewForm obj = new NewForm(ms)
}
}
在 NewForm构造函数中,使用内存流在图片框中加载图片。
public NewForm(MemoryStream ms)
{
picBox.Image = Image.FromStream(ms);
}
我希望它对你有所帮助,祝你好运!