NotifyIcon BalloonTipClicked 事件未触发

NotifyIcon BalloonTipClicked Event not Firing

您好,当用户单击气球提示时,我正在尝试 运行 一些代码。目前它显示气球提示,但当我点击它时,代表没有被解雇。

这是创建 NotifyIcon 的地方

    private NotifyIcon notifyIcon;

    public ClockOutTimer(DateTime? clockOutTime)
    {
        //IF CLOCK OUT TIME = NULL SET CLOCK OUT TIME TO 5 HOURS IN FUTURE
        ClockOutTime = clockOutTime ?? DateTime.Now.AddHours(5);
        notifyIcon = new NotifyIcon()
            {
                Icon = Properties.Resources.MainIcon,
                Text = "Organiser"
            };

        //CREATE DELEGATE FOR BALOON CLICKED
        notifyIcon.BalloonTipClicked += delegate
        {
            //NOT GOING HERE :(
            MessageBox.Show("TEST");
        };
        notifyIcon.BalloonTipIcon = ToolTipIcon.None;
        notifyIcon.BalloonTipText = String.Format("It is nearing {0} would you like to clock out?", ClockOutTime.ToString("HH:mm"));
        notifyIcon.BalloonTipTitle = "Organiser";

        //START REMINDER THREAD
        _Reminder = new Thread(new ThreadStart(_reminder));
        _Reminder.Start();
    }

这是调用气球提示的地方

        private void Remind()
    {
        //IF USER IS IN REMIND USER TO CLOCK OUT
        if (!Global.CurrentUser.In)
        { this.Dispose(); return; }
        notifyIcon.Visible = true;
        notifyIcon.ShowBalloonTip(20000);
        //Thread.Sleep(5000);
        //notifyIcon.Visible = false;
        //this.Dispose();
    }

也尝试过使用 IntelliSense 为您创建的方法,但也没有用。


改为

            NotifyIcon notifyIcon = new NotifyIcon()
        {
            Icon = Properties.Resources.MainIcon,
            Text = "Organiser",
            BalloonTipIcon = ToolTipIcon.None,
            BalloonTipText = String.Format("It is nearing {0} would you like to clock out?", ClockOutTime.ToString("HH:mm")),
            BalloonTipTitle = "Organiser",
        };

        notifyIcon.BalloonTipClosed += new EventHandler(BalloonClicked);
        notifyIcon.Click += new EventHandler(BalloonClicked);
        notifyIcon.BalloonTipClicked += new EventHandler(BalloonClicked);
        notifyIcon.BalloonTipShown += new EventHandler(BalloonClicked);
        notifyIcon.Disposed += new EventHandler(BalloonClicked);
        notifyIcon.MouseClick += (object sender, MouseEventArgs e) => MessageBox.Show(e.X.ToString());
        notifyIcon.Visible = true;
        notifyIcon.ShowBalloonTip(20000);

现在所有代码都在一个方法中,但它仍然无法正常工作。 None 的事件火了


已更新

这是因为我没有运行将方法关闭主线程。感谢您的帮助

尝试替换以下内容:

notifyIcon.BalloonTipClicked += delegate
    {
        //NOT GOING HERE :(
        MessageBox.Show("TEST");
    };

与:

notifyIcon.BalloonTipClicked += (sender, e) => {
    //Your code.
};