【问题标题】:User interface design: error info controls or message boxes?用户界面设计:错误信息控件或消息框?
【发布时间】:2011-06-23 12:46:08
【问题描述】:

我们一直在与客户就向用户通报错误进行辩论。一般情况: - 用户打开表单 - 用户填写表单上的 20 个字段 - 用户按 OK - 如果存在错误,错误字段由标准 .NET 错误提供程序标记,并且对话框不会关闭。

我们的客户希望实现以下场景: - 当用户想要离开该字段时验证该字段 - 如果该字段有错误,则显示一个消息框来描述错误 - 有时只需要一个警告,但它必须是一个消息框。

第一个问题:您如何告知用户数​​据输入错误?您是否使用消息框或类似 .NET 的错误提供程序?我问这个是因为到目前为止我们只使用了 .NET 错误提供程序,我们觉得第二种方式很奇怪。

第二个问题:在实现第二个场景时,我们使用了Validating事件来显示消息框。除了用户更改字段然后单击“确定”的情况外,一切正常。在这种情况下,模态窗体不会关闭,我们需要实现特殊代码来跟踪焦点控件。你遇到过这个问题吗?您是否还实现了焦点跟踪机制?

【问题讨论】:

    标签: .net user-experience


    【解决方案1】:

    Microsoft 添加错误提供程序的全部原因是为了避免您的客户似乎决心将自己放逐到的“消息框地狱”。模态对话框会扰乱用户的流程并导致额外的、不必要的 UI 交互。看了几遍消息,反正他们也不会再读了。

    现在,我同意他们的用户应该在他们离开该字段时立即收到验证失败的通知,或者甚至应该让他们留在该字段中。

    Infragistics 对此有一些很好的指导:

    http://quince.infragistics.com/html/PatternView.aspx?id=efb68767-0c0d-48da-9dab-d398ae1d7e8c

    (为了及时验证,我认为您需要使用像这样的错误提供程序http://msdn.microsoft.com/en-us/library/f6xht7x2.aspx

    【讨论】:

      【解决方案2】:

      一个不错的方法如下:

      使用验证控件在错误发生时通知用户。

      • 在这种情况下,请确保您提供了有关错误原因的有用信息。
      • 您应该能够执行此操作,因为支持该字段的值已更新。是否通过 INotifyPropertyChanged、A Binding List 等。

      然后,如果用户尝试提交表单,请不要让他们提交。给他们一个对话框,上面写着

      '嘿,伙计。看到那些红色闪烁的东西,那些意味着你有错误。去修理它们,然后你就可以吃甜点了。'

      您的错误必须是显而易见的,并且错误的解决方法也必须是显而易见的。没有什么比 GENERIC FAULT ERROR 打印机着火更糟糕的了。

      【讨论】:

        【解决方案3】:

        很难给出一般性的答案 - 上一代软件通常使用消息框来显示错误。但我认为当前一代软件中有一个开关可以避免消息框。所以,我想我在演示中看到,在 Microsoft LightSwitch 中没有像你这样的消息框。

        【讨论】:

          【解决方案4】:

          这取决于用户以及实际输入了多少错误。

          这可能还取决于用户实际拥有多少发言权! ($$$)

          如果输入了很多错误,那么我认为他们很快就会厌倦消息框。

          根据表单及其样式/布局,使用另一种形式的错误指示可能更合适,当用户推进焦点时,它仍然清晰可见。

          当然,如果用户遇到很多错误,那么可能存在更适合解决的潜在问题。

          【讨论】:

            【解决方案5】:

            我已经在其他应用程序中实现了这种方法。在 ui 上显示(内联)错误。禁用用户前进的能力。如果他们单击禁用的移动/前进按钮,则显示一个弹出窗口。

            【讨论】:

              猜你喜欢
              • 2017-07-26
              • 1970-01-01
              • 2018-05-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-02-11
              • 1970-01-01
              相关资源
              最近更新 更多