我的项目是一个Windows窗体项目,我有一个DataGridView。 DataGridView有一个可编辑的CheckBoxColumn列。我正在使用CellBeginEdit事件来决定是选中还是取消选中CheckBox。我第一次点击时没有问题,但是当我点击第二次,第三次或不止一次时,CellBeginEdit事件没有被触发。
根据您发表的评论,您在第一次点击后没有导航到另一个单元格。
但是在第一次单击后,如果我将另一个可编辑单元格聚焦并再次单击组合框单元格,则事件将被触发
这是设计的。 ComboBoxCell
在焦点上进入编辑模式。虽然细胞保持焦点,但CellBeginEdit
不会触发。您可以通过调用EndEdit()
来绕过此行为,如下所示:
private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (this.dataGridView1.CurrentCell is DataGridViewCheckBoxCell)
{
this.dataGridView1.EndEdit();
}
}