首页 > 解决方案 > 将 MessageBox 与 CellValidating 事件一起使用时出现异常

问题描述

尝试在 CellValidating 事件中使用 MessageBox 时出现异常。如果单元格具有 null 值,我会检查 cellvalidating 事件,我会显示一个 MessageBox 并设置 e.Cancel=true; 但是,使用 MessageBox 会产生如下异常 -

对象引用未设置为对象实例

我的主要目的是防止用户通过网格编辑删除单元格的值。所以,每次当单元格值为空时,我需要抛出一个提示并将焦点带回同一个单元格。任何想法可能导致此异常?下面是我的 CellValidating 事件中的代码

 if ((columnName == "Date") && e.Value == null && e.ActiveEditor != null)
        {

            cell.Value = e.OldValue;

            MessageBox.Show("Please specify a date.", "Date Field is Required");

    e.Cancel=true;
  }

下面是错误的 StackTrace -

应用程序不支持即时 (JIT) 调试。有关详细信息,请参阅此消息的末尾。

************** 异常文本 ************** System.NullReferenceException:对象引用未设置为对象的实例。在 Telerik.WinControls.UI.GridViewEditManager.EndEditCore(Boolean validate, Boolean cancel) 在 Telerik.WinControls.UI.BaseGridBehavior.OnMouseDown(MouseEventArgs e) 在 Telerik.WinControls.UI.RadGridView.OnMouseDown(MouseEventArgs e) 在 System.Windows。 Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 Telerik.WinControls.RadControl.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow。回调(IntPtr hWnd,Int32 msg,IntPtr wparam,IntPtr lparam)

附加细节 - 当我通常 Tab OUT 单元格时不会发生异常,但是当我滚动到最右边时,我在滚动之前正在编辑的单元格仍处于编辑模式,并且当我滚动提示时(MessageBox ) 出现并在单击确定时显示错误。

标签: c#winformsradgridview

解决方案


推荐阅读