[C#][DataGridView]チェックボックス付列の追加 | Assertion Failed!

[C#][DataGridView]チェックボックス付列の追加

チェックボックス付の列をDataGridViewに追加する


DataGridViewCheckBoxColumnクラスのオブジェクトをDataGridViewに追加する


private void Form1_Load(object sender, EventArgs e)
{
  DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();

  // 三項のチェックボックスにするには、ThreeStateプロパティをtrueにする

  column.ThreeState = true;
column.Name= "CheckBox";
  dataGridView1.Columns.Add(column);

}


チェックボックスの状態の変化を取得する


チェックボックスの状態の変化は、DataGridViewのCellValueChangedイベントで取得する。

イベントが飛んでくるタイミングは、チェック状態の変更後、フォーカスが外れたタイミングとなる。


チェック時即座にイベントを飛ばすためには、CurrentCellDirtyStateChangedイベントを

ハンドルし、編集をコミットさせればよい。

参考サイト


private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{

  if (dataGridView1.Columns["CheckBox"].Equals(dataGridView1.Columns[e.ColumnIndex]))
  {
    CheckState state = (CheckState)dataGridView1.Rows[e.RowIndex].Cells["CheckBox"].Value;

    MessageBox.Show(state.ToString());

  }

}