Vb.net 如何获取Datagridview图像单元格的图像值

Vb.net 如何获取Datagridview图像单元格的图像值,vb.net,datagridview,datagridviewimagecolumn,Vb.net,Datagridview,Datagridviewimagecolumn,我有一个带有播放图像列的datagridview,如果用户单击播放图标,则单击单元格事件集“停止”来自资源的图像 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 但我需要得到用户什

我有一个带有播放图像列的datagridview,如果用户单击播放图标,则单击单元格事件集“停止”来自资源的图像

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图像名称? 我试过了

但是返回了“System.Drawing.Image”值我需要图像值。 对不起,我的英语不好


感谢您的关注

这是我获取图像的方式。首先检查您单击的单元格类型是否为
DataGridViewImageCell
。如果是,请尝试将
属性转换为所需的任何图像格式

    {
        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);
然后在
单元中单击
方法:

    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)
        {

        }

    }

谢谢您的帮助,但应用程序返回了图像单元格的System.Drawing.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;

        if(imageCell.Value == playBitmap) 
        {

        }
        else if (imageCell.Value == stopBitmap)
        {

        }

    }