sus*_*hma 5 .net c# notifyicon winforms
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);
Run Code Online (Sandbox Code Playgroud)
在设定时间(999999999)之后,气球尖端是不可见的.但我想要显示气球提示,直到它被点击,因为我有baloontipclicked
事件.
如何让baloontip永远可见?
来自MSDN:
最小和最大超时值由操作系统强制执行,通常分别为10秒和30秒,但这可能因操作系统而异.将太大或太小的超时值调整到适当的最小值或最大值.此外,如果用户似乎没有使用计算机(没有发生键盘或鼠标事件),则系统不会将此时间计入超时.
似乎无法覆盖最大超时(最终由Windows调整,即使您指定更长的超时也限制为30秒),因此通知将消失,不会等待您在2分钟后点击它.
如果你想要真正拥有不同的行为,你应该使用其他东西,其他对象或模拟与你完全控制行为的表格类似的东西,你可以根据自己的意愿显示,隐藏和关闭你的代码.
如果尚未单击,则可以再次显示.你有关闭事件(BalloonTipClosed),如果用户没有ckicked它只是再次显示它.
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;
(..)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8037 次 |
最近记录: |