Datagridview复选框列有一个死区

时间:2013-08-23 20:47:09

标签: c# winforms datagridview

我有一个datagridview(winforms),其中包含checkbox列以及其他基于文本的列。我已经成功解决了checkbox列的大多数常见问题,这些问题在本网站上有详细记录。

但是,我还有1个问题。我可以点击checkbox上的“直接”,它确实以我想要的方式响应。但是,如果我小心地在单元格边界和checkbox控件之间移动鼠标指针,并单击鼠标,我可以选择单元格,但checkbox的状态不会切换。当给定行的行高越大时,这个问题就越明显。

感谢您的帮助

注意:这不是,我重复 NOT ,这是焦点在选中后移出给定复选框单元格时发生的问题。我有一个解决了。

1 个答案:

答案 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();
        }
    }