Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.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# XtraGrid Gridview行单击事件(筛选器行)上的NullReferenceException_C#_Datagridview_Filter_Devexpress - Fatal编程技术网

C# XtraGrid Gridview行单击事件(筛选器行)上的NullReferenceException

C# XtraGrid Gridview行单击事件(筛选器行)上的NullReferenceException,c#,datagridview,filter,devexpress,C#,Datagridview,Filter,Devexpress,我在gridview上使用了一个过滤区域,因此如果用户单击过滤区域,就会显示“NullReferenceException was unhandled”错误。如何区分选择行、数据行或筛选器,以便放置控件。我对编码真的很陌生,谢谢。if(e.RowHandle

我在gridview上使用了一个过滤区域,因此如果用户单击过滤区域,就会显示“NullReferenceException was unhandled”错误。如何区分选择行、数据行或筛选器,以便放置控件。我对编码真的很陌生,谢谢。

if(e.RowHandle<0)
private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
{              
   WriteUsersInformation((User)grdPersonel.MainView.GetRow(e.RowHandle));                        
}
{ //无效行 } 其他的 { WriteUsersInformation((用户)grdPersonel.MainView.GetRow(e.RowHandle)); }
我认为过滤区域指的是自动过滤行,如果是,可以检查所选行句柄是否等于自动过滤行句柄

if (e.RowHandle < 0)
{
    //Invalid row
}  
else
{
    WriteUsersInformation((User)grdPersonel.MainView.GetRow(e.RowHandle));   
}
但我真的建议您编写一个更安全的代码,只需检查您的用户对象是否为null

if (e.RowHandle != DevExpress.XtraGrid.GridControl.AutoFilterRowHandle)
{
// your code
}

上次用户单击自动筛选行“我的当前对象为空”时,我用此代码解决了问题。再次感谢所有答案。

对不起,你的英语帮不了什么忙,我不明白你需要什么。你从哪里来的?也许我能用你掌握的语言理解你的问题。我只想知道如何在datagrid中分离单击行、单击行或过滤器。我正在使用devexpress datagridview和ıts过滤器选项以及c。我是土耳其人,所以本质上你有不同的观点。。某些行或1行是筛选器,其他行是数据。现在,当您选择一个过滤器行时,您将获得异常。我说的对吗?谢谢,但它不起作用,我仍然有相同的错误,并且e.rowHandle是int,所以e.rowHandle!=我试试看。I have“从不等于'int'类型的'null'警告。如果e.rowhandle返回int,请尝试e.rowhandle<0
private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
{
    var user = gridView1.GetRow(e.RowHandle) as User;
    if (user == null)
        return;

    WriteUsersInformation(user);
}
 private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
    {

        object oUsr = grdPersonel.MainView.GetRow(e.RowHandle);
        if (oUsr is User)
            WriteUserInformation((User)oUsr);

       }