我正在尝试以编程方式添加多个NotifyIcon。问题是只有一个NotifyIcon可以定义EventHandler。其他NotifyIcons根本不会触发定义的EventHandler。 如果我只是从设计器中添加两个NotifyIcon(即使用GUI),则会正确调用每个EventHandler。
但是,例如,为了同时创建两个NotifyIcon,我做了两次以下代码。
NotifyIcon notifyIcon1 = new NotifyIcon();
notifyIcon1.MouseDoubleClick += new MouseEventHandler(notifyIcon1_MouseDoubleClick);
notifyIcon1.Visible = true;
notifyIcon1.Icon = Properties.Resources.test;
notifyIcon1.BalloonTipTitle = "title";
notifyIcon1.BalloonTipText = "text";
notifyIcon1.ShowBalloonTip(1000, "title","text", ToolTipIcon.Info);
我只是像上面那样生成了两个NotifyIcon(notifyIcon1
& notifyIcon2
)。
并且,两个图标都成功显示在右下角。
但是,其中一个NotifyIcon不会触发事件操作,例如鼠标单击。
一个notifyicon适用于Event。但是,另一个不会触发上面定义的MouseDoubleClick事件处理程序。
我想以编程方式创建NotifyIcon。但是,如果我以编程方式创建NotifyIcons,只有一个NotifyIcon可以触发事件句柄。其他人永远不会工作。
我找不到一些问题或相关文章。
NotifyIcon notifyIcon2, notifyIcon1;
public void showTest()
{
notifyIcon1 =
new NotifyIcon();
notifyIcon1.BalloonTipTitle = "title";
notifyIcon1.BalloonTipText = "text body";
notifyIcon1.Text = "text";
this.notifyIcon1.MouseDoubleClick += new MouseEventHandler(testNotifyIcon_MouseDoubleClick1);
notifyIcon1.Visible = true;
notifyIcon1.Text = "test";
notifyIcon1.Icon = Properties.Resources.test;
notifyIcon1.BalloonTipTitle = "body";
notifyIcon1.BalloonTipText = "title";
notifyIcon1.ShowBalloonTip(1000, "title", "body", ToolTipIcon.Info);
notifyIcon2 =
new NotifyIcon();
notifyIcon2.BalloonTipTitle = "title";
notifyIcon2.BalloonTipText = "text body";
notifyIcon2.Text = "text";
this.notifyIcon2.MouseDoubleClick += new MouseEventHandler(testNotifyIcon_MouseDoubleClick2);
notifyIcon2.Visible = true;
notifyIcon2.Text = "test";
notifyIcon2.Icon = Properties.Resources.test;
notifyIcon2.BalloonTipTitle = "body";
notifyIcon2.BalloonTipText = "title";
notifyIcon2.ShowBalloonTip(1000, "title", "body", ToolTipIcon.Info);
}
private void testNotifyIcon_MouseDoubleClick1(object sender, System.Windows.Forms.MouseEventArgs e)
{
notifyIcon1.ShowBalloonTip(1000);
}
private void testNotifyIcon_MouseDoubleClick2(object sender, System.Windows.Forms.MouseEventArgs e)
{
notifyIcon2.ShowBalloonTip(1000);
}
所以,对于这段代码,我只是在每个MouseDoubleClick处理程序中放置断点。但是,永远不要打它。我只使用笔记本电脑中的触摸板,即不使用某种真正的鼠标。我认为这根本不相关。但是,以防万一。并且,这些方法&变量是在一些扩展自。
的类中定义的