无法在DataGridView中自定义无效数据输入的DataError报告

本文关键字:输入 数据 DataError 报告 无效 自定义 DataGridView | 更新日期: 2023-09-27 18:05:43

我使用通过BindingSource控件连接到数据库表的DataGridView控件。该表包含一个日期/时间字段。当在与日期/时间字段和提交行相对应的单元格中输入格式不正确的日期时,我将看到一个标题为DataGridView默认错误处理程序的屏幕,以及异常报告和调用堆栈。底部的一条消息说"要替换此默认对话框,请处理DataError事件"。如果我在此事件中添加代码来执行此操作,则当尝试输入和提交无效数据时,程序将挂起,并且焦点无法移出具有无效数据的日期/时间单元格。我希望能够自定义在这种情况下的错误信息。

无法在DataGridView中自定义无效数据输入的DataError报告

查找要在事件中显示的代码的提示揭示了解决方案。我需要把e。cancel设为false。没有这个的代码不会进入事件,这就是为什么我没有列出它

// Don't throw an exception when we're done.
e.ThrowException = false;
// Display an error message.
string txt = "Error with " +
    dgvPeople.Columns[e.ColumnIndex].HeaderText +
    "'n'n" + e.Exception.Message;
MessageBox.Show(txt, "Error",
    MessageBoxButtons.OK, MessageBoxIcon.Error);
// If this is true, then the user is trapped in this cell.
e.Cancel = false;