|
2011/03/31(Thu) 10:58:52 編集(投稿者)
■No58332 (みっつ さん) に返信 > DataGridViewCheckBoxColumnをクリックしても セルではなく、列全体をクリックしているという事ですか?
クリックでチェックしたいのであれば、列ではなく、 各セル内のチェックボックス部をクリックする必要があります。
もしも列クリックで全部のチェックボックスの状態を変更させたいなら、 そのようなコードを記述する必要があるでしょう。
public partial class Form1 : Form { DataGridView dgv; DataGridViewCheckBoxColumn col; public Form1() { // InitializeComponent();
dgv = new DataGridView(); col = new DataGridViewCheckBoxColumn(); col.FalseValue = 0; col.TrueValue = 1; dgv.Columns.Add(col); dgv.RowCount = 20; dgv.Dock = DockStyle.Fill; Controls.Add(dgv); dgv.ColumnHeaderMouseClick += dgv_ColumnHeaderMouseClick; }
void dgv_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { if (e.ColumnIndex == col.Index) { dgv.CancelEdit(); dgv.BeginEdit(false); for (int r = dgv.RowCount - (dgv.AllowUserToAddRows ? 2 : 1); r >= 0; r--) { dgv[e.ColumnIndex, r].Value = col.TrueValue; } dgv.EndEdit(); } } }
|