【问题标题】:Datagridview checkbox column has a dead areaDatagridview 复选框列有死区
【发布时间】:2013-09-10 04:00:00
【问题描述】:
我有一个 datagridview (winforms) 和一个 checkbox 列以及其他基于文本的列。我已经成功解决了与 checkbox 列有关的大多数常见问题,这些问题在本网站上有很好的记录。
但是,我还有 1 个问题。我可以在checkbox 上单击“直接”,它确实以我想要的方式响应。但是,如果我在单元格边界和checkbox 控件之间小心移动鼠标指针,然后单击鼠标,我可以选择单元格,但checkbox 的状态不会切换。当给定行的行高较大时,此问题会更加明显。
感谢您的帮助
注意:这不是,我重复 NOT,当焦点在选中后从给定的复选框单元格移开时发生的问题。我已经解决了那个问题。
【问题讨论】:
标签:
c#
winforms
datagridview
【解决方案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();
}
}