NotifyIcon.ShowBalloonTip不保持超时

时间:2011-07-27 14:29:48

标签: c# winforms

我显示通知信息:

 notifyIcon.ShowBalloonTip(29000, "title", "message", ToolTipIcon.Info);

它应该显示29 000毫秒,但它会在不到一秒的时间内消失。

我知道这是由操作系统控制的。但应该有办法增加节目的持续时间吗?

使用Windows 7。

4 个答案:

答案 0 :(得分:11)

来自ShowBalloonTip上的MSDN文章

“最小和最大超时值由操作系统强制执行,通常分别为10秒和30秒,但这可能会因操作系统而异。超出或过小的超时值会调整到适当的最小值此外,如果用户似乎没有使用计算机(没有发生键盘或鼠标事件),则系统不会计算此时间超时。“

您可以阅读以下整个功能:

http://msdn.microsoft.com/en-us/library/ms160064.aspx

答案 1 :(得分:2)

在显示气球之前,请确保NotifyIcon可见:

notifyIcon.Visible = true;
//then show the balloon tip

此外,如果显示任何其他气球提示,您的将被忽略。

http://msdn.microsoft.com/en-us/library/ms160065.aspx

答案 2 :(得分:2)

这取决于操作系统设置,在每个操作系统中它都是不同的。 最好的方法是使用自制的气球。

答案 3 :(得分:1)

我知道这是一个非常古老的问题,现在可以回答,但它可供将来参考,也适合那些会遇到这个问题的读者。

我在winform应用程序中遇到了与上述问题相同的问题,然后我遇到了 Github 链接 - Windows Toast Notifications

是的,它很容易集成到您的c#winform应用程序中。你所要做的就是 -

  • 从上面的Github链接下载代码。
  • 将以下类文件添加到c#winform应用程序

    FormAnimator.cs

    NativeMethods.cs

  • Notifications.cs表单添加到您的应用程序

  • 在项目代码中创建一个Toast通知表单对象 调用Show()方法显示它。

示例代码

var toastNotification = new Notification
(
    "My Notification", 
    message, 
    durationsTime, 
    FormAnimator.AnimationMethod.Slide,
    FormAnimator.AnimationDirection.Up
);

//PlayNotificationSound("normal");
toastNotification.Show();