0

我有一个像这张图片一样的datagridview:

在此处输入图像描述

我设置ColumnsHeaderVisibleFalse,第一列是DataGridViewCheckBoxColumn

问题是我可以通过单击鼠标取消选中所有行,但第一行不可更改。

我无法选中/取消选中表格的第一行。

我想再说一遍,我不能用鼠标点击来做到这一点。

问题是什么?

谢谢..

4

2 回答 2

0

在数据边界之后,您应该在 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;
    }
}
于 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 回答