c# - 将 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 ) 出现并在单击确定时显示错误。
解决方案
推荐阅读
- julia - Julia 中的核外计算
- java - Intellij 缺少 Java 的语法高亮显示
- java - 作业:如何对来自文件的字符串数组列表进行排序
- javascript - 打开模式时阻止背景滚动
- google-cloud-platform - 如何在谷歌云平台的项目之间共享资源(计算引擎)
- firebase - 如何在 Firestore 中使用复合查询?
- bit-src - 使用 Bit (bitsrc.io) 并将正确的文件放入 .gitignore
- javascript - 在移动/桌面版本和重定向到正确模块之间做出决定
- r - 用 seq 在 R 中做一个系列
- javascript - 选择最近的 div 中的所有复选框