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

时间:2013-07-01 03:29:33

标签: c# vb.net

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

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

1 个答案:

答案 0 :(得分:3)

这可能对您有用:

  1. 我加载了2张图片

  2. 我创建了一个DataGridViewImageColumn,并将名称和headertext设置为图像

  3. 我将DataGridViewImageColumn添加到DataGridView

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

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

  6. 如果单元格位于图像列中,则我将图像切换出来。

  7. 以下是代码:

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