【发布时间】:2012-02-03 19:54:59
【问题描述】:
如果单元格中的数据无效,我正在处理 CellValidating 并设置 e.Cancel = true。这几乎可以让我到达我想去的地方,但问题是如果用户在单元格中有一些无效数据,则 UI 的其余部分基本上是禁区,直到他们修复错误或按 Esc 键。
由于某些用户可能不直观地按 Esc,因此他们可能会感到沮丧,例如无法按 Esc。单击表单上的“返回”按钮完全离开屏幕。 (在这种情况下,他们正在进行的更改应该被丢弃,就像他们按下了 Esc 一样。)
关于如何实现这一目标的任何想法?我确实喜欢不允许他们在不修复当前单元格中的错误的情况下开始编辑其他单元格,但我希望他们仍然能够按表单上的“返回”/“取消”按钮。
提前致谢!
【问题讨论】:
-
可以将
CausesValidation属性设置为false,还是您的验证取消单元格是特定的? msdn.microsoft.com/en-us/library/… -
@keyboardP 这似乎至少部分有效,因为现在取消按钮可以用于单元格中的无效数据。将您的评论转换为答案,我会为您投票。 (不知道为什么 Back 还不能工作。)
-
返回和取消按钮是否在同一个父控件中?
-
@keyboardP 是的。这可能是因为“后退”按钮执行的操作确实会导致验证,而“取消”按钮基本上会提示关闭表单。
-
尝试让后退按钮只显示一个消息框,以查看它在与 DGV 无关时是否有效。或者,您可以在按下后退按钮时启用
CausesValidation属性(MouseDown?)。至少在这一点上,用户不应该被困在一个单元格中。
标签: c# winforms user-interface datagridview