【问题标题】:confirm messagebox only with mouse仅用鼠标确认消息框
【发布时间】:2014-05-21 20:43:01
【问题描述】:

我编写了一个应用程序,用户在其中填写了一些文本并在填充文本框时按 Enter 键。在此之后进行了一些检查,并出现了带有 OK 按钮的标称 MessageBos。一些用户没有阅读消息框,像在下一个文本框中一样输入,按下 OK 按钮,警告/错误消息消失而没有阅读。

我知道,我无法控制用户是否真的阅读了消息,但我希望用户使用鼠标进行确认。有没有办法,当显示消息框时,确定按钮没有焦点?或者我是否必须使用具有焦点的额外字段编写自己的消息框。

【问题讨论】:

  • 如果消息很重要,当你在文本框上按回车时,你应该停止你的代码所做的一切,然后最终你的用户会明白的
  • 如果您尝试进行输入验证,可能有比弹出消息框告诉用户错误更好的方法。您可以尝试此处概述的方法,该方法使用内置的验证框架:stackoverflow.com/a/8915207/2609288
  • 您提出的解决方案只会激怒一组不同的用户。它并没有真正解决问题,它只是移动它。真正的问题是验证失败时显示一个消息框。这是可怕的 UI,只有对用户最不利的应用程序才能完成。将您的通知策略更改为工具提示、气球提示、神奇出现的标签控件或其他任何东西。它不会比破解 MessageBox 更有效,而且您将获得更多的收益。
  • 这是一个骇人听闻的想法。世界上有些人觉得老鼠很难用。有些人不喜欢使用鼠标。为什么要让他们受苦?

标签: c# messagebox


【解决方案1】:

虽然保护用户免受他们自己的伤害通常是一项没有双赢的努力,但我建议做你想做的事需要你构建一个你自己的表单,你可以在其中捕获键盘输入并禁止关闭对话框当按下 Enter 键时。

【讨论】:

  • 捕获或拦截(和覆盖)键盘输入不一定需要您编写自己的表单stackoverflow.com/a/23286790/2186023
  • @DrCopyPaste 当然不是。但是表单既便宜又容易构建,而且还远不及代码所需的理解。
  • 是的,我不是说你暗示有必要,只是想增加这种可能性
猜你喜欢
  • 1970-01-01
  • 2010-10-18
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多