更改datagridview单元格上的system.byte()值单击

本文关键字:单击 byte system datagridview 单元格 更改 | 更新日期: 2023-09-27 18:20:26

我有一个带有DatagridViewImage列的窗体。此列加载了2个system.byte().类型的图像

如何将DataGridview cell_click上的图像值从图像1更改为图像2,反之亦然?

更改datagridview单元格上的system.byte()值单击

这可能对您有用:

  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;
    }
}