在我的公司,我已经看到了几种在输入无效时通知用户的方法(我们的验证通常是在用户点击某种形式的“提交”按钮时完成的)。
以下是我见过的最常见方法:
使用ErrorProvider类来传达哪些控件包含无效输入。 (这是我目前的偏好,因为验证可以一次完成,用户可以轻松识别哪些控件包含无效输入。)
验证所有控件中的输入并编译要显示给用户的消息列表。验证例程完成后,立即向用户显示所有“无效输入”消息(通过MessageBox)。
按顺序验证每个控件中的输入,并在找到一条无效数据后通过用户通知用户(通过MessageBox)。 (我不喜欢这种方法,因为如果Control_A和Control_B都包含无效数据,则用户必须尝试两次提交数据才能看到两个验证消息。)
您认为有效/有效地通知用户无效输入的最佳方式是什么?
答案 0 :(得分:2)
使用IDataError,您可以将两种第一种方法结合起来,因为它既可以为单个控件提供错误,也可以为整个视图提供聚合错误消息。
在某些情况下,您可能具有依赖于几个不同输入值的组合的验证逻辑,因此只对每个控件进行绑定验证会过于禁止。另一方面,在有意义的情况下,您仍希望能够为每个控件提供错误消息。 IDataError允许您同时执行这两项操作。最常见的UI实现是在每个无效控件旁边都有一个可视提示(例如闪烁的图标)。
每次用户执行无效操作时弹出模式对话框(消息框)是一种非常有效的方式来扰乱用户 - 他们失去了上下文,不得不花时间点击“确定”按钮使对话框消失
答案 1 :(得分:1)
当用户按OK时,我们会检查所有控件。
我们使用特殊颜色标记每个无效值,并在消息框中列出所有错误。
答案 2 :(得分:1)
如果技术允许并且如果它不会损害逻辑流程或可用性,那么最好尽快通知用户有关错误的信息。 (错误提供程序,Ajax,任何东西)
当用户必须多次提交表单以确定是否使用了用户名时,总是令人沮丧!
我已经对此进行了可用性研究:大多数用户厌恶地离开页面,除非他们真的想要注册另一端的任何内容。