我有一个像这张图片中的数据网格视图:
我将ColumnsHeaderVisible
设为False
,第一列为DataGridViewCheckBoxColumn
。
问题是我可以通过鼠标单击取消选中所有行,但第一行不可更改。
我无法检查/取消选中表格的第一行。
我想再说一遍,我不能用鼠标点击这样做。
有什么问题?
谢谢..
答案 0 :(得分: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;
}
}
答案 1 :(得分: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());
}
}