私はこの画像のようなデータグリッドビューを持っています:
に設定ColumnsHeaderVisible
しFalse
、最初の列はDataGridViewCheckBoxColumn
です。
問題は、マウスをクリックしてすべての行のチェックを外すことができますが、最初の行は変更できないことです。
テーブルの最初の行をチェック/チェック解除できません。
もう一度言いたいのですが、マウスクリックではこれを行うことができません。
何が問題ですか?
ありがとう..
私はこの画像のようなデータグリッドビューを持っています:
に設定ColumnsHeaderVisible
しFalse
、最初の列はDataGridViewCheckBoxColumn
です。
問題は、マウスをクリックしてすべての行のチェックを外すことができますが、最初の行は変更できないことです。
テーブルの最初の行をチェック/チェック解除できません。
もう一度言いたいのですが、マウスクリックではこれを行うことができません。
何が問題ですか?
ありがとう..
データの境界の後、DataBindingComplete イベントで呼び出す必要があります
dataGridView.ClearSelection();
編集:
DataBindingCompleteEvent のすべての行を反復処理できます
private void dataGridView_DataBindingComplete(object sender,
DataGridViewBindingCompleteEventArgs e)
{
for (int i = 0; i < dataGridView.Rows.Count - 1; i++)
{
dataGridView.Rows[i].Cells[0].Value = false;
}
}
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.CellContentClick += new DataGridViewCellEventHandler(dataGridView1_CellContentClick);
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
dataGridView1[0, e.RowIndex].Value = !(bool)dataGridView1[0, e.RowIndex].Value;
//Or
//bool IsBool = false;
//IsBool = bool.TryParse(dataGridView1[0, e.RowIndex].EditedFormattedValue.ToString(), out IsBool);
//if (IsBool)
// dataGridView1[0, e.RowIndex].Value = IsBool;
}
}
編集:コードを配置しますCellClick event
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
//Find primaykey from dataTable
DataRow[] Rows = dataTable.Select("Id = '" + dataGridView1[1, e.RowIndex].EditedFormattedValue.ToString() + "'");
Rows[0]["CheckBoxes"] = !bool.Parse(Rows[0]["CheckBoxes"].ToString());
}
}