点击datagridview单元格时更改system.byte()值

3

我有一个表单,其中包含一个 DatagridViewImage 列。该列加载了两个类型为 system.byte() 的图片。

如何在 DataGridview cell_click 事件中从图像1更改为图像2,反之亦然?

1个回答

3
这可能适合您:
  1. 我加载了2个图像

  2. 我创建了一个DataGridViewImageColumn并将名称和标题设置为images

  3. 我将DataGridViewImageColumn添加到DataGridView中

  4. 我订阅了DataGridView的单元格单击事件

  5. 在单元格单击事件中,我检查被单击的单元格是否在图像列中

  6. 如果单元格在图像列中,我切换图像。

这是代码:
private Image image1 = Bitmap.FromFile("C:/Image1.png");
private Image image2 = Bitmap.FromFile("C:/Image2.png");

public void dgvInit()
{
    DataGridViewImageColumn imgColumn = new DataGridViewImageColumn();
    imgColumn.Name = "images";
    imgColumn.HeaderText = "images";
    imgColumn.Image = this.image1;          
    this.dataGridView1.Columns.Add(imgColumn);
    this.dataGridView1.Rows.Add(new DataGridViewRow());
    this.dataGridView1.CellClick += new 
        DataGridViewCellEventHandler(dataGridView1_CellClick);          
}

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (this.dataGridView1.Columns[e.ColumnIndex].HeaderText == "images")
    {
        DataGridViewImageColumn imgColumn =
            (DataGridViewImageColumn)this.dataGridView1.Columns[e.ColumnIndex];
        if (imgColumn.Image == this.image1) imgColumn.Image = image2;
        else imgColumn.Image = image1;
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接