0

私はこの画像のようなデータグリッドビューを持っています:

ここに画像の説明を入力

に設定ColumnsHeaderVisibleFalse、最初の列はDataGridViewCheckBoxColumnです。

問題は、マウスをクリックしてすべての行のチェックを外すことができますが、最初の行は変更できないことです。

テーブルの最初の行をチェック/チェック解除できません。

もう一度言いたいのですが、マウスクリックではこれを行うことができません。

何が問題ですか?

ありがとう..

4

2 に答える 2

0

データの境界の後、DataBindingComplete イベントで呼び出す必要があります

dataGridView.ClearSelection();

DataBindingComplete イベント

編集:

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;
    }
}
于 2013-01-19T12:57:02.273 に答える
0
  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());
            }
        }
于 2013-01-19T14:13:59.383 に答える