如何通过程序关闭气泡提示?

10

我在我的应用程序中有一个托盘图标。当我在后台加载一些内容时,我会显示20秒钟的气泡提示。但是,如果后台加载提前完成,比如在10秒钟内,我想隐藏气泡提示。目前唯一隐藏气泡提示的方法是单击气泡提示中的关闭图标。

    Public Tray As NotifyIcon
    Tray = New NotifyIcon

    Tray.BalloonTipIcon = ToolTipIcon.Info
    Tray.BalloonTipText = "Loading"
    Tray.BalloonTipTitle = "Please Wait"
    Tray.ShowBalloonTip(20 * 1000)

在达到指定时间之前,是否可以通过程序隐藏气球提示?

6个回答

6

试试这个:

Tray.Visible = true;

更多信息在此处

希望能够帮助!


4

有更好的方法来实现这个功能。最好使用进度条或沙漏鼠标光标来提供“请等待”反馈。在Win7+上,您可以使用Windows API Code Pack在任务栏按钮中显示进度条,使其更加美观。

无论如何,您可以通过显示一个带有短暂超时的通知气球或隐藏通知图标来关闭气球。


6
不过,这次讨论的重点不在于此。也许提问者只是举个例子而已? - Ciaran Gallagher

1

我个人认为,直接打电话会更容易。

Tray.Show(0);

这应该立即隐藏托盘气球,而不隐藏托盘图标本身...


1

您可以随时隐藏气球提示(Visible属性)。

请注意,托盘图标和气球由explorer.exe(“开始菜单栏”)拥有和控制,因此如果您没有正确清理它,它将一直存在。您需要主动告诉它消失。为气球设置计时器只是告诉资源管理器要显示多长时间。您需要在之前主动发送一个反向消息来隐藏它。


1

至少在当前使用 .Net Framework 4 客户端配置文件的 Windows 8.1 上,
在保持 System.Windows.Forms.NotifyIcon notifyIcon1 可见的情况下弹出 BallonTip
需要连续执行:

    notifyIcon1.Visible = false;
    notifyIcon1.Visible = true;

0
你可以在notifyicon的closed事件上重新运行气球提示。
private void Tray_BalloonTipClosed(object sender, EventArgs e)
{
    // Run the code again
}

我已经通过这种方式修复了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接