C# Datagridview复选框列有死区
我有一个C# Datagridview复选框列有死区,c#,winforms,datagridview,C#,Winforms,Datagridview,我有一个datagridview(winforms),其中有一个复选框列以及其他基于文本的列。我已经成功地解决了有关checkbox专栏的大多数常见问题,这些专栏在本网站上有很好的文档记录 但是,我还有一个问题。我可以“直接”点击复选框,它会以我想要的方式响应。但是,如果我小心地在单元格边界和复选框控件之间移动鼠标指针,然后单击鼠标,我可以选择单元格,但是复选框的状态不会切换。当给定行的行高度较大时,此问题更为明显 谢谢你的帮助 注意:我重复一下,这不是选中某个复选框单元格后焦点离开该单元格时发
datagridview
(winforms),其中有一个复选框
列以及其他基于文本的列。我已经成功地解决了有关checkbox
专栏的大多数常见问题,这些专栏在本网站上有很好的文档记录
但是,我还有一个问题。我可以“直接”点击复选框
,它会以我想要的方式响应。但是,如果我小心地在单元格边界和复选框
控件之间移动鼠标指针,然后单击鼠标,我可以选择单元格,但是复选框
的状态不会切换。当给定行的行高度较大时,此问题更为明显
谢谢你的帮助
注意:我重复一下,这不是选中某个复选框单元格后焦点离开该单元格时发生的问题。我已经解决了这个问题。这不是问题。这就是它的工作原理。对于网格列,可以使用cellclick事件和cellcontentclick事件。因为我想在单击单元格内的任何位置时选中复选框,所以我应该使用cellclick。在您需要收听的其他事件中,我在代码中添加了以下内容:
private void Grid_CellClick(object sender, DataGridViewCellEventArgs e)
{
if ((e.ColumnIndex == 1) && e.RowIndex != -1)
{
this.MyGrid[1, e.RowIndex].Value = !(bool)this.MyGrid[1, e.RowIndex].Value;
this.MyGrid.EndEdit();
}
}