Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Datagridview复选框列有死区_C#_Winforms_Datagridview - Fatal编程技术网

C# Datagridview复选框列有死区

C# Datagridview复选框列有死区,c#,winforms,datagridview,C#,Winforms,Datagridview,我有一个datagridview(winforms),其中有一个复选框列以及其他基于文本的列。我已经成功地解决了有关checkbox专栏的大多数常见问题,这些专栏在本网站上有很好的文档记录 但是,我还有一个问题。我可以“直接”点击复选框,它会以我想要的方式响应。但是,如果我小心地在单元格边界和复选框控件之间移动鼠标指针,然后单击鼠标,我可以选择单元格,但是复选框的状态不会切换。当给定行的行高度较大时,此问题更为明显 谢谢你的帮助 注意:我重复一下,这不是选中某个复选框单元格后焦点离开该单元格时发

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

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

谢谢你的帮助


注意:我重复一下,这不是选中某个复选框单元格后焦点离开该单元格时发生的问题。我已经解决了这个问题。

这不是问题。这就是它的工作原理。对于网格列,可以使用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();
        }
    }