【问题标题】:Modal popup errors block MDI parent GUI updates模态弹出错误阻止 MDI 父 GUI 更新
【发布时间】:2010-08-31 15:13:36
【问题描述】:

我正在制作一个与微控制器通信的 Windows 应用程序。有时,会发生通信错误,需要将其标记给用户。例如,如果电缆被拔掉或微控制器断电。

我已经为此苦苦挣扎了一段时间,我回到了我原来的解决方案。最初的解决方案是制作弹出窗口,但除了烦人之外,有时还会阻止 MDI 父 GUI 更新它的显示。在弹出窗口仍然打开时可能会发生一些事情,这会导致问题。

我试过让弹出窗口变成非模态的,虽然这对 GUI 有帮助,但老板不喜欢弹出窗口可能被其他窗口隐藏。

标记错误的最佳实践是什么?

顺便说一句,我有另一个关于我的替代解决方案问题的线程: Tooltip baloon display position (for error notification)

【问题讨论】:

    标签: c# .net error-handling modal-dialog


    【解决方案1】:

    还有其他与用户交流的方式......系统托盘中的闪烁图标,主窗口上的状态指示灯,当连接丢失时从绿色变为红色。

    * 更新 *

    在系统托盘中闪烁图标就像创建计时器一样简单,在滴答事件上,显示/隐藏图标或将其从一个图标切换到另一个。您可以在此处找到一个示例:
    http://www.freevbcode.com/ShowCode.asp?ID=6826

    只需重新阅读问题...如果您要闪烁任务栏窗口,还有更多内容...我不会采用这种方法,因为(1)闪烁的任务栏可以被用户禁用, (2) 没有任何迹象表明它为什么会闪烁。但如果这是您想要的,请看这里:
    http://pietschsoft.com/post/2009/01/26/CSharp-Flash-Window-in-Taskbar-via-Win32-FlashWindowEx.aspx

    【讨论】:

    • 我在状态栏中有一个小电缆图标,当这种情况发生时,它会从连接变为断开,这对我的老板来说似乎还不够。我怎样才能让这样的东西闪烁?
    • 我没有系统托盘图标,它是 MDI Parent 中的状态栏。我不想在应用程序的 GUI 之外闪烁任何东西。
    • 好的...同样的答案,一个计时器,在勾选上隐藏或显示图标,或从一个图标切换到另一个。在检测到断开的连接时启动或停止计时器
    【解决方案2】:

    您可以将窗口置于最顶层而不使其成为模态...您使用什么语言编写代码?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-15
      • 2011-02-07
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多