我有一个datagridview
(winforms),其中包含checkbox
列以及其他基于文本的列。我已经成功解决了checkbox
列的大多数常见问题,这些问题在本网站上有详细记录。
但是,我还有1个问题。我可以点击checkbox
上的“直接”,它确实以我想要的方式响应。但是,如果我小心地在单元格边界和checkbox
控件之间移动鼠标指针,并单击鼠标,我可以选择单元格,但checkbox
的状态不会切换。当给定行的行高越大时,这个问题就越明显。
感谢您的帮助
注意:这不是,我重复 NOT ,这是焦点在选中后移出给定复选框单元格时发生的问题。我有一个解决了。
答案 0 :(得分:3)
这不是问题。这就是它应该如何工作。对于网格列,您可以拥有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();
}
}