C# NotifyIcon.ShowBallootTip不保持超时
我显示通知信息:C# NotifyIcon.ShowBallootTip不保持超时,c#,winforms,C#,Winforms,我显示通知信息: notifyIcon.ShowBalloonTip(29000, "title", "message", ToolTipIcon.Info); 它应该显示29000毫秒,但不到一秒钟就消失了 我知道这是由操作系统控制的。但是应该有办法延长演出的持续时间吗 使用windows 7。在显示引出序号之前,请确保Notify图标可见: notifyIcon.Visible = true; //then show the balloon tip 此外,如果显示任何其他气球提示,您的
notifyIcon.ShowBalloonTip(29000, "title", "message", ToolTipIcon.Info);
它应该显示29000毫秒,但不到一秒钟就消失了
我知道这是由操作系统控制的。但是应该有办法延长演出的持续时间吗
使用windows 7。在显示引出序号之前,请确保Notify图标可见:
notifyIcon.Visible = true;
//then show the balloon tip
此外,如果显示任何其他气球提示,您的提示将被忽略
来自ShowBalloadTip上的MSDN文章 “最小和最大超时值由操作系统强制执行,通常分别为10秒和30秒,但这可能因操作系统而异。将过大或过小的超时值调整为适当的最小值或最大值。此外,如果用户似乎没有使用计算机(没有发生键盘或鼠标事件),则系统不会将此时间计入超时。” 您可以在下面阅读整个函数:
这取决于操作系统的设置,在每个操作系统中都是不同的。
最好的方法是使用一个自制的阳台。我知道这是一个很老的问题,现在要回答,但它是为了将来的参考和读者谁会遇到这个问题 我在一个winform应用程序中遇到了与上述问题相同的问题,然后我遇到了这个Github链接- 是的,它很容易集成到您的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();
不知何故,在Windows 7中,超时似乎不起作用,就像它被操作系统覆盖一样。Windows XP似乎尊重超时。也许在气球消失之前,您设置了
notifyIcon.Visible=false
。非常棒,非常有用的工作!非常感谢!