C# 使BaloonTiptText可见,直到单击为止
我的程序中有一个C# 使BaloonTiptText可见,直到单击为止,c#,.net,winforms,notifyicon,C#,.net,Winforms,Notifyicon,我的程序中有一个NotifyIcon,它在任务栏中显示一个阳台提示。我写的代码是 notifyIcon1.Icon = new Icon(SystemIcons.Application, 40, 40); notifyIcon1.Visible = true; notifyIcon1.Text = "Test Notify Icon Demo"; notifyIcon1.BalloonTipText =count+ " Alerts"; notifyIcon1.BalloonTipIcon =
NotifyIcon
,它在任务栏中显示一个阳台提示。我写的代码是
notifyIcon1.Icon = new Icon(SystemIcons.Application, 40, 40);
notifyIcon1.Visible = true;
notifyIcon1.Text = "Test Notify Icon Demo";
notifyIcon1.BalloonTipText =count+ " Alerts";
notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;
notifyIcon1.BalloonTipTitle = "Alert!";
notifyIcon1.ShowBalloonTip(999999999);
在设定时间(999999999)后,阳台尖端不可见。但是我想显示baloon提示,直到它被单击,因为我已经单击了baloontipclicked
事件
如何使baloontip永远可见 来自MSDN:
最小和最大超时值由操作系统强制执行
系统和通常分别为10秒和30秒,但是
可能因操作系统而异。超时值为
将过大或过小调整至适当的最小值或
最大值。此外,如果用户似乎没有使用
计算机(无键盘或鼠标事件发生)然后
系统不会将此时间计入超时
似乎无法覆盖最大超时(最终由Windows调整,即使指定更长的超时,也限制为30秒),因此通知将逐渐消失,不会等待您在2分钟后单击它
如果你真的想要有一个不同的行为,你可能应该使用其他的东西,其他的对象或者模拟一些类似的表单,在这些表单中你可以完全控制行为,你可以根据你的代码显示、隐藏和关闭它。如果没有点击它,你可以再次显示它。 您有一个关闭事件(BallootTipClosed),如果用户没有选中它,只需再次显示它
private void ShowBalloonTip(int minutes) {
notifyIcon.BalloonTipIcon = ToolTipIcon.Error;
notifyIcon.BalloonTipText = "Text";
notifyIcon.BalloonTipTitle = "Title";
notifyIcon.ShowBalloonTip(minutes* 60 * 1000);
m_showUntil = DateTime.Now.AddMinutes(minutes);
}
private void notifyIcon_BalloonTipClosed(object sender, EventArgs e) {
if (m_showUntil > DateTime.Now)
notifyIcon.ShowBalloonTip(60 * 1000);
}
private void notifyIcon_BalloonTipClicked(object sender, EventArgs e) {
m_showUntil = DateTime.MinValue;
(..)
}
可能的副本。不行。如果用户处于活动状态(键盘和鼠标活动->),默认Windows行为将在特定超时后淡出。shell会强制执行相关规则。超时不会开始滴答作响,直到它有一些迹象表明用户可能已经看到了它,并且不能设置得太长。如果你想要一个永久的通知,那么你不应该使用气球提示。一个普通的顶级窗体是最好的,否则就不能保证它能与其他顶级窗口竞争。这只是一个小问题。如果打开时出现另一个通知,则会使应用程序处于无响应状态。考虑将此代码段应用于代码的人应该对其进行编辑,将其限制为同时只发送一个通知。