如果在C#中以编程方式添加NotifyIcon,则不会触发事件

时间:2014-04-07 02:31:49

标签: c#

我正在尝试以编程方式添加多个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处理程序中放置断点。但是,永远不要打它。我只使用笔记本电脑中的触摸板,即不使用某种真正的鼠标。我认为这根本不相关。但是,以防万一。并且,这些方法&变量是在一些扩展自。

的类中定义的

0 个答案:

没有答案