我不是警报框的忠实拥护者,主要是因为它们确实会损害应用程序的可用性。正如 Alan Cooper 在About Face中所说的那样,这无异于在头部欺骗用户并称他/她为白痴。
另一方面,不良数据的通知是应用程序中的一项关键需求。首先,在我看来,您应该尽可能避免输入不良数据。大多数平台(ASP.NET、.NET WinForms、WPF、Java Swing、JSP 等)都有各种第三方控件工具包,它们将对此有所帮助。(虽然它在这些部分并不流行,但我实际上已经偏爱 Infragistics NetAdvantage。)
根据您的平台选择,您有许多 UI 通知可能性。已经提到了一些:使用应用程序的状态栏,指示字段本身的问题等。
我是一个 .NET 人,所以很明显我在这里的输入会受到环境的影响。
在网络上,我是验证控件的忠实粉丝。他们提供了很多通知,没有太侵入性的 UI。结合 的简单Text
属性*
、详细ErrorMessage
属性和良好放置且视觉上明显ValidationSummary
的 ,我得到了所有验证,几乎没有用户的噩梦。对于那些不在 .NET 上的控件,这些控件对输入的数据执行各种验证,并Text
在页面上的任何位置(通常在被验证的控件旁边)显示它们的属性。该ErrorMessage
属性位于其中ValidationSummary
,通常位于页面顶部。
在 WinForms 环境中,我开始使用收件箱ErrorProvider
控件和 Infragistics 的 Outlook 样式弹出框的组合。在我最近的 WinForms 应用程序中,我使用了两种不同的弹出窗口:一种是半透明的,出现在右下角。它有一个绿色的复选标记图标,用于通知用户成功消息。(我的用户不信任计算机;如果他们没有看到确认信息,他们会认为机器吃掉了他们的数据。长话短说。)这些框会在 7 秒内消失,或者用户可能会手动关闭它们。
第二种弹窗没有半透明,一个红色的X图标,出现在右上角。那是我显示验证错误的地方。此外,ErrorProvider
控件会在验证失败的每个字段旁边显示一个图标,将鼠标悬停在给定控件上会显示其特定的错误消息。(这些特定消息也在弹出窗口中。)错误弹出窗口在 15 秒后消失。
我在该应用程序中使用的唯一模态警报框是当它崩溃时(真正未处理的异常;目前几乎不可能这样做)以及用户想要关闭脏窗口时。
这些是我用来避免警告框的一些技术。用户可以忽略确认消息(使他们的生活更轻松),并且不会因验证错误而受到模式的困扰——在这些错误被修复之前,他们无法保存他们的数据,但他们并没有被吓倒。当然,只要有可能,我会通过使用适当屏蔽的控件来防止验证错误,这些控件不允许无效输入。