Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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# 如何删除或禁用额外的列和行选择功能?_C#_Winforms_Devexpress_Xtragrid - Fatal编程技术网

C# 如何删除或禁用额外的列和行选择功能?

C# 如何删除或禁用额外的列和行选择功能?,c#,winforms,devexpress,xtragrid,C#,Winforms,Devexpress,Xtragrid,我有网格视图,我已经禁用了列自动宽度,这样我可以手动设置列的大小。手动调整大小后,会有一个额外的空白列。我想要的是: 要在“活动”中单击列外部时禁用“选择行”功能,请编写代码并生成 删除额外的列 我已经成功地用此事件或代码完全隐藏了剩余的列 private void gridView1_CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e) { if (e.Column ==

我有网格视图,我已经禁用了列自动宽度,这样我可以手动设置列的大小。手动调整大小后,会有一个额外的空白列。我想要的是:

  • 要在“活动”中单击列外部时禁用“选择行”功能,请编写代码并生成
  • 删除额外的列
  • 我已经成功地用此事件或代码完全隐藏了剩余的列

      private void gridView1_CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e)
        {
            if (e.Column == null)
            {
                e.Handled = true;
    
            }
        }
    
    问题是我仍然可以点击流派的外部,行选择仍然跟随我点击的地方

    以以下方式处理事件:

    private void gridView1_MouseDown(object sender, MouseEventArgs e) {
        GridView view = (GridView)sender;
        var hi = view.CalcHitInfo(e.Location);
        Console.WriteLine(hi.HitTest);
        if (hi.InRow && !hi.InRowCell)
            DXMouseEventArgs.GetMouseArgs(e).Handled = true;
    }
    
    按以下方式处理事件:

    private void gridView1_MouseDown(object sender, MouseEventArgs e) {
        GridView view = (GridView)sender;
        var hi = view.CalcHitInfo(e.Location);
        Console.WriteLine(hi.HitTest);
        if (hi.InRow && !hi.InRowCell)
            DXMouseEventArgs.GetMouseArgs(e).Handled = true;
    }
    

    我正在使用此代码隐藏。但问题是我仍然可以单击它,并且行选择仍然启用`私有void gridView1_CustomDrawColumnHeader(对象发送者,ColumnHeaderCustomDrawEventArgs e){if(e.Column==null){e.Handled=true;}}“我想如果有其他方法可以删除xtra列,那我就糟了!你知道怎么解决吗?第一个问题应该是:额外的专栏是从哪里来的?你真的想拥有它吗?如果不需要,则必须决定是要显示(默认情况下为暗灰色)背景,还是要调整列的大小,还是要调整DGV的整体大小。。至于保留它,仍然只在前三列中选择:将SelectionMode设置为RowHeader,并对cellclicked事件进行编码以执行您想要的选择。额外的列来自我手动调整列大小并禁用自动列宽,这可能是因为我在视图中未使用完整列。我不知道。想要它,但需要禁用单击行slection对不起,可能我的控件搞错了:我们是在谈论Winforms
    DataGridView
    还是另一个控件?(您将其标记为
    GridView
    )。。在
    DataGridview
    中,调整列的大小时不会显示额外的列,只显示不带任何标题的额外空间,并且在额外空间中单击不会选择行,无论是哪种
    SelectionMode
    !我正在使用此代码隐藏。但问题是我仍然可以单击它,并且行选择仍然启用`私有void gridView1_CustomDrawColumnHeader(对象发送者,ColumnHeaderCustomDrawEventArgs e){if(e.Column==null){e.Handled=true;}}“我想如果有其他方法可以删除xtra列,那我就糟了!你知道怎么解决吗?第一个问题应该是:额外的专栏是从哪里来的?你真的想拥有它吗?如果不需要,则必须决定是要显示(默认情况下为暗灰色)背景,还是要调整列的大小,还是要调整DGV的整体大小。。至于保留它,仍然只在前三列中选择:将SelectionMode设置为RowHeader,并对cellclicked事件进行编码以执行您想要的选择。额外的列来自我手动调整列大小并禁用自动列宽,这可能是因为我在视图中未使用完整列。我不知道。想要它,但需要禁用单击行slection对不起,可能我的控件搞错了:我们是在谈论Winforms
    DataGridView
    还是另一个控件?(您将其标记为
    GridView
    )。。在
    DataGridview
    中,调整列的大小时不会显示额外的列,只显示不带任何标题的额外空间,并且在额外空间中单击不会选择行,无论是哪种
    SelectionMode
    !做得很好。但是有点不知道每个代码都做了什么。。这对我来说是新的,你能解释一下吗?选择发生在网格中的鼠标事件上。因此,我们处理第一个鼠标事件(MouseDown),检查单击的区域。如果它是一个空白区域(网格命中信息将告诉您单击一行,但不是在单元格中),我们将通过DXMouseEventArgs.GetMouseArgs(e).Handled=true行停止网格对该事件的进一步处理。这让我感到困惑,为什么e.handle true=禁用鼠标事件,如果单击错误。谢谢你的解释,工作做得很好。但是有点不知道每个代码都做了什么。。这对我来说是新的,你能解释一下吗?选择发生在网格中的鼠标事件上。因此,我们处理第一个鼠标事件(MouseDown),检查单击的区域。如果它是一个空白区域(网格命中信息将告诉您单击一行,但不是在单元格中),我们将通过DXMouseEventArgs.GetMouseArgs(e).Handled=true行停止网格对该事件的进一步处理。这让我感到困惑,为什么e.handle true=禁用鼠标事件,如果单击错误。谢谢你的解释