通知用户无效输入的常见做法是什么?

时间:2009-06-27 17:24:17

标签: c# winforms validation user-input

在我的公司,我已经看到了几种在输入无效时通知用户的方法(我们的验证通常是在用户点击某种形式的“提交”按钮时完成的)。

以下是我见过的最常见方法:

  • 使用ErrorProvider类来传达哪些控件包含无效输入。 (这是我目前的偏好,因为验证可以一次完成,用户可以轻松识别哪些控件包含无效输入。

  • 验证所有控件中的输入并编译要显示给用户的消息列表。验证例程完成后,立即向用户显示所有“无效输入”消息(通过MessageBox)。

  • 按顺序验证每个控件中的输入,并在找到一条无效数据后通过用户通知用户(通过MessageBox)。 (我不喜欢这种方法,因为如果Control_A和Control_B都包含无效数据,则用户必须尝试两次提交数据才能看到两个验证消息。

您认为有效/有效地通知用户无效输入的最佳方式是什么?

3 个答案:

答案 0 :(得分:2)

使用IDataError,您可以将两种第一种方法结合起来,因为它既可以为单个控件提供错误,也可以为整个视图提供聚合错误消息。

在某些情况下,您可能具有依赖于几个不同输入值的组合的验证逻辑,因此只对每个控件进行绑定验证会过于禁止。另一方面,在有意义的情况下,您仍希望能够为每个控件提供错误消息。 IDataError允许您同时执行这两项操作。最常见的UI实现是在每个无效控件旁边都有一个可视提示(例如闪烁的图标)。

每次用户执行无效操作时弹出模式对话框(消息框)是一种非常有效的方式来扰乱用户 - 他们失去了上下文,不得不花时间点击“确定”按钮使对话框消失

答案 1 :(得分:1)

当用户按OK时,我们会检查所有控件。

我们使用特殊颜色标记每个无效值,并在消息框中列出所有错误。

答案 2 :(得分:1)

如果技术允许并且如果它不会损害逻辑流程或可用性,那么最好尽快通知用户有关错误的信息。 (错误提供程序,Ajax,任何东西)

当用户必须多次提交表单以确定是否使用了用户名时,总是令人沮丧!

我已经对此进行了可用性研究:大多数用户厌恶地离开页面,除非他们真的想要注册另一端的任何内容。