当用户在我的DatagridView单元格中输入无效值时_CellValidating我正在设置"e.Cancel = true"。
似乎e.Cancel还可以阻止用户关闭表单或点击X按钮,如何添加例外?(允许用户关闭表单,即使 e.取消设置为 true)
我刚刚基于这个场景设置了一个测试项目,似乎DataGridView
的CellValidating
事件是在Form
的Closing
事件之前调用的;这意味着在验证单元格时,您无法知道用户是否尝试关闭表单。
严格来说,正确的事件顺序是让用户在允许关闭表单之前在单元格中输入有效数据(或通过按 Esc 键取消编辑)。但是,如果要允许关闭窗体,则可以处理窗体的Closing
事件:
protected override void OnClosing(CancelEventArgs e) {
e.Cancel = false;
base.OnClosing(e);
}
这是不好的做法,但它会给你所要求的行为。