C# DevXPress GridView在启动FocusedRowHandle时引发异常

C# DevXPress GridView在启动FocusedRowHandle时引发异常,c#,winforms,devexpress,C#,Winforms,Devexpress,我正在为WinForms使用DevExpress.XtraGrid GridView,我不知道下面的代码为什么会引发此异常: 中发生类型为“DevExpress.Utils.HideException”的异常 DevExpress.XtraEditors.v13.1.dll,但未在用户代码中处理 堆栈跟踪: 在DevExpress.XtraEditors.Container.ContainerHelper.OnInvalidValueException(IWIN32窗口所有者、异常源异常、对象f

我正在为WinForms使用DevExpress.XtraGrid GridView,我不知道下面的代码为什么会引发此异常:

中发生类型为“DevExpress.Utils.HideException”的异常 DevExpress.XtraEditors.v13.1.dll,但未在用户代码中处理

堆栈跟踪:

在DevExpress.XtraEditors.Container.ContainerHelper.OnInvalidValueException(IWIN32窗口所有者、异常源异常、对象fValue) 位于DevExpress.XtraGrid.Views.Base.ColumnView.SetRowCellValueCore(Int32行句柄、GridColumn列、对象\u值、布尔fromEditor) 位于DevExpress.XtraGrid.Views.Grid.GridView.SetRowCellValueCore(Int32行句柄、GridColumn列、对象\u值、布尔fromEditor) 位于DevExpress.XtraGrid.Views.Grid.GridView.PostEditor(布尔因果关系消除) 在DevExpress.XtraGrid.Views.Base.BaseView.CloseEditor(布尔因果关系消除) 位于DevExpress.XtraGrid.Views.Base.ColumnView.CheckCanLeaveRow(Int32 currentRowHandle,布尔值raiseUpdateCurrentRow) 在DevExpress.XtraGrid.Views.Grid.GridView.DoChangeFocusedRow(Int32 currentRowHandle、Int32 newRowHandle、Boolean raiseUpdateCurrentRow) 在DevExpress.XtraGrid.Views.Base.ColumnView.DoChangeFocusedRowInternal(Int32 newRowHandle,Boolean updateCurrentRow) 在DevExpress.XtraGrid.Views.Base.ColumnView.set_FocusedRowHandle(Int32值)中 在c中的xyzForm.gridView_MouseDown(对象发送器,MouseEventArgs e)处:…xyzForm.cs:第1218行 在DevExpress.XtraGrid.Views.Base.BaseView.RaiseMouseDown(MouseEventArgs e) 在DevExpress.XtraGrid.Views.Base.Handler.BaseViewHandler.OnMouseDown(MouseEventArgs e) 在DevExpress.XtraGrid.Views.Grid.Handler.GridHandler.OnMouseDown(MouseEventArgs ev) 位于DevExpress.Utils.Controls.BaseHandler.ProcessEvent(EventType etype,Object args) 在DevExpress.XtraGrid.Views.Base.Handler.BaseViewHandler.ProcessEvent(EventType etype,Object args) 在DevExpress.XtraGrid.GridControl.OnMouseDown(MouseEventArgs ev)

代码(简化):


这里的
gridView.FocusedRowHandle
是一个int(当前值为4),而
info.RowHandle
也是一个int(值为5)。GridView有20行。

据我所知,在编辑器验证未完成的情况下,当您试图更改焦点行时,GridControl会引发此异常,因为在验证编辑器中输入正确的值之前,GridControl不允许任何操作。并且不需要在用户代码中处理此异常,因为此异常应由GridControl本身处理,并且不会影响您的应用程序。
我认为您应该直接联系团队以澄清情况

private void gridView_MouseDown(object sender, MouseEventArgs e)
{
    GridHitInfo info = gridView.CalcHitInfo(e.Location);

    if (info.Column == null) return;

    gridView.FocusedRowHandle = info.RowHandle; // this line throws
    gridView.FocusedColumn = info.Column;
}