我有一个带复选框列以及其他基于文本的列的datagridview(winforms).我已经成功解决了复选框列中的大多数常见问题,这些问题在本网站上都有很好的记录.
但是,我还有1个问题.我能够在复选框上单击“直接”,并且它确实以我想要的方式响应.但是,如果我小心地在单元格边界和复选框控件之间移动鼠标指针,然后单击鼠标,则可以选择该单元格,但复选框的状态不会切换.当给定行的行高更大时,此问题就更加明显.
谢谢你的帮助
注意:这不是,我不再重复,当焦点在选中后移出给定的复选框单元格时会发生此问题.我已经解决了.
解决方法:
这不是问题.这就是它应该如何工作.对于网格列,您可以具有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();
}
}