WinForms中MessageBox的任何好的替代品?

时间:2011-09-27 15:37:41

标签: winforms user-interface notifications notification-bar

WinForms程序将不可避免地向用户发送通知。有两种类型的通知:

  • 重要提示:用户需要对其采取行动
  • 非重要:有点像“有事情发生,你可能要注意”。

MessageBox用于这两种类型是很常见的。但最近我发现MessageBox有点烦人:它窃取用户的焦点,用户必须点击才能解雇它。我想知道MessageBox的替代品及其优缺点是什么?

首先,这里有一些想法:
状态栏:不易显示冗长的通知
任务栏通知:人们认为这是邪恶的,因为大多数互联网广告弹出窗口使用这种方法吗? 浮动状态栏:Chrome / IE9 / Evernote使用类似的浮动状态栏,当没有链接地址或没有消息时,它会被隐藏。

  • Chrome用户界面:信息栏和状态冒泡
  • IE9:通知栏

2 个答案:

答案 0 :(得分:0)

我们实现了类似于任务栏通知的机制,但是放在WinForms控件中的某些坐标中。

这有一些优点:

  • 您有一些关于通知显示位置(位置)和原因的背景信息。
  • 它是非模态的,因此不会阻止GUI。
  • 使用没有边框的自有表单很容易实现。
  • 您可以将它放在任何您想要的地方。
  • 如果用户需要进一步说明,您可以显示带有简短说明的链接标签并显示帮助,其他拨号或链接某些操作。用户体验得到了改善。

但我建议仅将通知用于提供信息。

您必须考虑有关消息框的一些提示:

  • 这是向用户显示信息的标准方式。
  • 应该是用户通知错误消息或警告。消息框确保用户至少单击确定。因此用户意识到发生了某些事情。是的,也许他没有阅读这条消息,但至少他看到了错误或警告。
  • 用户可能会忽略其他报告机制。

希望它有所帮助。

答案 1 :(得分:0)

我一直在使用窗体上的WebBrowser控件来开发C#WinForms解决方案。

这时它具有三种模式:提示;倒计时提示;倒数计时器和组合框提示。

使用webbrowser控件允许使用HTML,它使您可以自由选择字体;颜色和大小。

如果我只知道如何共享解决方案而不是代码片段,我将分享我的财产。

我所能做的工作包括两个部分,设计师和提示本身。

如果管理员可以与我联系,我可以提供下载链接,他们可以进行审核以查看他们的想法。