[英]How to get image value of Datagridview Image Cell
我有一个带有播放图像ImageColumn的datagridview,如果用户单击播放图标,则CellClick Event从资源中设置“ Stop ”图像。
Private Sub dg1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dg1.CellClick
dg1.Rows(e.RowIndex).Cells(3).Value = New Bitmap(app1.My.Resources.stop)
End Sub
但我需要让用户单击什么图像(播放或停止)(如何获得Cellclick事件的datagridview图像名称)? 我试过了
dg1.Rows(e.RowIndex).Cells(3).Value.ToString()
但是返回的“ System.Drawing.Image ”值我需要图像值。 对不起,我的英语不好。
感谢您的关注
这就是我要获得图像的方式。 首先检查您单击的单元格是否为DataGridViewImageCell
类型。 如果是这样,请尝试将Value
属性强制转换为所需的任何图像格式。
{
dataGridView1.Columns.Add(new DataGridViewImageColumn());
BitMap bitMap = new BitMap(5,5); // or however you get it from resources
bitMap.Tag = "Play"; // Put the name of the image here
dataGridView1.Rows.Add(bitMap);
}
void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
var dgv = sender as DataGridView;
if (dgv == null)
return;
var imageCell = dgv[e.ColumnIndex, e.RowIndex] as DataGridViewImageCell;
if (imageCell == null)
return;
var image = imageCell.Value as Bitmap;
if (image == null)
return;
string name = image.Tag as String;
}
另外,您可以将位图另存为类级变量:
Bitmap playBitmap = New Bitmap(app1.My.Resources.play);
Bitmap stopBitmap = New Bitmap(app1.My.Resources.stop);
然后在CellClick
方法中:
void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
var dgv = sender as DataGridView;
if (dgv == null)
return;
var imageCell = dgv[e.ColumnIndex, e.RowIndex] as DataGridViewImageCell;
if (imageCell == null)
return;
if(imageCell.Value == playBitmap)
{
}
else if (imageCell.Value == stopBitmap)
{
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.