3

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

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

谢谢你的帮助

注意:这不是,我重复NOT,当焦点在选中后从给定的复选框单元格移开时发生的问题。我已经解决了那个。

4

1 回答 1

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();
        }
    }
于 2013-09-09T19:00:25.190 回答