我正在使用这段代码在我的form1_load事件下:
notifyIcon1.Visible = true;
notifyIcon1.ShowBalloonTip(5000, "Welcome", "Hello " + User, ToolTipIcon.Info);
我甚至检查了我的注册表,值为1。为什么气球没有显示?我确实有一个来自我的通知图标的图标,并且它正在显示。但气球并没有出现!
我正在使用这段代码在我的form1_load事件下:
notifyIcon1.Visible = true;
notifyIcon1.ShowBalloonTip(5000, "Welcome", "Hello " + User, ToolTipIcon.Info);
我甚至检查了我的注册表,值为1。为什么气球没有显示?我确实有一个来自我的通知图标的图标,并且它正在显示。但气球并没有出现!
看起来你忘记设置它的图标了,就像这样:
notifyIcon1.Icon = SystemIcons.Exclamation;
notifyIcon1.Visible = true;
notifyIcon1.ShowBalloonTip(5000, "Welcome", "Hello " + User, ToolTipIcon.Info);
请阅读http://www.csharp411.com/notifyiconshowballoontip-issues/获取更多关于NI问题的信息。
您可能需要发布在窗体Load事件中的其余代码,但是这里有一些建议:
此外,请注意气球提示无法保证显示。请参阅msdn的NotifyIcon.ShowBalloonTip方法文章中的备注部分:
备注
操作系统强制执行最小和最大超时值,通常为10和30秒,但这取决于操作系统。 过大或过小的超时值将被调整为适当的最小或最大值。另外,如果用户似乎没有使用计算机(没有键盘或鼠标事件发生),则系统不会将此时间计入超时时间。任务栏上只能显示一个气球提示。当任务栏上已经显示气球提示时,尝试显示气球提示会导致超时值被忽略。 这个行为在不同的操作系统和气球提示来自另一个应用程序还是相同应用程序时略有不同。 当第二个气球提示来自另一个应用程序时,在第二个气球提示出现之前,第一个气球提示会显示最小超时值,而不管超时值的大小。 在大多数情况下,如果气球提示来自同一应用程序,则在对ShowBalloonTip方法进行另一个调用时,第一个气球提示立即关闭。 在某些情况下,第二个气球提示将在第一个气球提示上方打开。
标题文本将以粗体字显示在气球顶部附近。
下面是一些示例代码,与@MetroSmurf已经提到的内容相关。请注意,在显示NotifyIcon
之前(通常在表单构造函数中),必须调用this.InitializeComponent();
。
public Form1()
{
this.InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
notifyIcon1.Icon = new Icon(@"C:\SomePath\MyIcon.ico");
notifyIcon1.Visible = true;
notifyIcon1.ShowBalloonTip(5000, "Welcome", "Hello " + User, ToolTipIcon.Info);
}
还要确保Windows已配置为允许通知。在Windows 7中,右键单击任务栏,点击属性,在通知区域中点击自定义...,勾选始终显示任务栏上的所有图标和通知选项,然后点击确定。
notifyIcon1.Icon = SystemIcons.Exclamation;
一切正常工作。感谢 @HatSoft。 - Matteo Gariglio