我正在编写一个应用程序,通过通知图标显示通过baloontips的通知。我想要显示两种通知 - 普通的baloontip和可点击的baloontip。我想要可点击的baloontips在网络浏览器中打开一些网址。问题是事件堆积在baloontip上。 我不确定这个解释是否说明了什么,所以这里有一个例子:
代码:
NotifyIcon ni = new NotifyIcon();
void showClickableNotification(string title, string content, string url)
{
ni.BaloonTipClicked += new EventHandler((sender, e) => ni_BalloonTipClicked(sender, e, url));
ni.ShowBaloonTip(1, title, content, ToolTipIcon.Info);
}
void ni_BalooTipClicked(object sender, EventArgs e, string url)
{
Process.Start(url);
}
showClickableNotification
的每次使用都会再分配一个url
到BallonTipClicked
个事件
我希望在通知隐藏后清除事件,以防止打开与当前通知无关的多个标签。
此外,当点击可点击后显示正常通知时,它也会打开所有堆叠的网址。
我尝试为ni.BaloonTipClicked += emptyFunction
分配一个空函数,但+=
运算符只是将另一个事件添加到池而不是覆盖它。 -=
无效,因为我每次都会添加new
个事件。我想我可以做一些包含当前url
的全局变量,并避免每次都分配new
(-=
然后会工作),但它看起来像是廉价的解决方法。有没有(正确的?)方法呢?