[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());
}
}