Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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# 如何使用DevExpress查找栏搜索但不过滤网格视图表?_C#_.net_Winforms_Devexpress - Fatal编程技术网

C# 如何使用DevExpress查找栏搜索但不过滤网格视图表?

C# 如何使用DevExpress查找栏搜索但不过滤网格视图表?,c#,.net,winforms,devexpress,C#,.net,Winforms,Devexpress,我有一个包含大量十六进制数据的网格控件,我希望能够使用提供的查找搜索栏在表中搜索特定地址。但是,我不希望它过滤掉顶部图像中显示的所有数据。相反,我只想向下滚动到该值,而不进行任何过滤(下图)。我一直在使用Grid Viewer对象下的一些选项Find properties,但它们似乎都不适用于我当前的情况。是否有方法使用DevExpress查找栏执行此操作,或者是否需要使用其他控件?如果是这样,如何才能做到这一点?谢谢请评论更多信息,我将编辑问题 我对这个问题的解决方法如下 从选项查找中禁用

我有一个包含大量十六进制数据的网格控件,我希望能够使用提供的查找搜索栏在表中搜索特定地址。但是,我不希望它过滤掉顶部图像中显示的所有数据。相反,我只想向下滚动到该值,而不进行任何过滤(下图)。我一直在使用Grid Viewer对象下的一些选项Find properties,但它们似乎都不适用于我当前的情况。是否有方法使用DevExpress查找栏执行此操作,或者是否需要使用其他控件?如果是这样,如何才能做到这一点?谢谢请评论更多信息,我将编辑问题


我对这个问题的解决方法如下

  • 从选项查找中禁用查找、清除和关闭按钮
  • 为GridView对象创建以下CustomRowFilter事件处理程序。(这可以通过在每次尝试筛选时将handled属性设置为true来防止筛选表。)
  • 创建一个自定义搜索按钮,在找到FindFilterText中包含的数据所在的行后,该按钮将更改当前关注的行

    private void gridViewDataViewer_CustomRowFilter(object sender, DevExpress.XtraGrid.Views.Base.RowFilterEventArgs e)
    {
        e.Handled = true;
        e.Visible = true;  
    }
    
    
    private void searchButton_Click(object sender, EventArgs e)
    {
        int rowHandle = gridViewDataViewer.LocateByValue("Column Name", gridViewDataViewer.FindFilterText);
        gridViewDataViewer.FocusedRowHandle = gridViewDataViewer.GetVisibleRowHandle(rowHandle);
    
    }
    

您可以使用
CustomRowFilter
防止网格过滤,并使用
ColumnFilterChanged
聚焦包含搜索值的行:

private void gridView1_CustomRowFilter(object sender, DevExpress.XtraGrid.Views.Base.RowFilterEventArgs e)
{
    e.Handled = true;
    e.Visible = true;

}

private void gridView1_ColumnFilterChanged(object sender, EventArgs e)
{
    for (int i = 0; i < gridView1.DataRowCount; i++)
    {
        object b = gridView1.GetRowCellValue(i, "Address");
        if (b != null && b.ToString().Contains(gridView1.FindFilterText))
        {
            gridView1.FocusedRowHandle = i;
            return;
        }
    }
}
private void gridview 1_CustomRowFilter(对象发送者,DevExpress.XtraGrid.Views.Base.RowFilterEventArgs e)
{
e、 已处理=正确;
e、 可见=真实;
}
私有void gridView1\u ColumnFilterChanged(对象发送方,事件参数e)
{
对于(int i=0;i
干得好!我花了两个小时试图找到一个解决方案,最后我带着一个几乎相似的解决方案离开了这里,找到了你的解决方案。@AbdellahOUMGHAR哇!我感谢你花那么多时间来帮助我!谢谢朋友!听到这个消息我很高兴,也谢谢你:)