C#如何取消订阅BaloonToolTip的点击

时间:2015-09-29 13:19:10

标签: c# events

我正在编写一个应用程序,通过通知图标显示通过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的每次使用都会再分配一个urlBallonTipClicked个事件

我希望在通知隐藏后清除事件,以防止打开与当前通知无关的多个标签。

此外,当点击可点击后显示正常通知时,它也会打开所有堆叠的网址。

我尝试为ni.BaloonTipClicked += emptyFunction分配一个空函数,但+=运算符只是将另一个事件添加到池而不是覆盖它。 -=无效,因为我每次都会添加new个事件。我想我可以做一些包含当前url的全局变量,并避免每次都分配new-=然后会工作),但它看起来像是廉价的解决方法。有没有(正确的?)方法呢?

0 个答案:

没有答案