3

DatagridViewImage列のあるフォームがあります。この列には、system.byte() 型の 2 つのイメージが読み込まれます。

cell_clickDataGridview の画像値を画像 1 から画像 2 に、またはその逆に変更するにはどうすればよいですか?

4

1 に答える 1

3

これはあなたのために働くかもしれません:

  1. 2枚の画像を読み込みました

  2. DataGridViewImageColumn を作成し、名前とヘッダーテキストを画像に設定しました

  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;
    }
}
于 2013-07-01T04:12:31.070 に答える