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