我的程序中有一个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)后,气球尖端不可见。但我希望在点击之前显示气球提示,因为我有baloontipclicked
事件。
如何让baloontip永远可见?
答案 0 :(得分:7)
:
操作强制执行最小和最大超时值 系统并且通常分别为10秒和30秒,但是这一点 可能因操作系统而异。超时值 太大或太小被调整到适当的最小值或 最大值。此外,如果用户似乎没有使用 计算机(没有发生键盘或鼠标事件)然后 系统不计算此时间超时。
似乎无法覆盖最大超时(最终由Windows调整,即使您指定更长时间也限制为30秒),因此通知将消失,不会等待您在2分钟后点击它
如果您想要真正拥有不同的行为,您应该使用其他东西,其他对象或模拟与您完全控制行为的表单相似的内容,并且您可以根据需要显示,隐藏和关闭代码
答案 1 :(得分:7)
如果尚未点击,则可以再次显示。 你有关闭事件(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;
(..)
}