首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NotifyIcon BalloonTipClicked事件未触发

NotifyIcon BalloonTipClicked事件未触发
EN

Stack Overflow用户
提问于 2015-08-29 00:35:23
回答 1查看 2.4K关注 0票数 1

嗨,当用户点击气球提示时,我试图运行一些代码。目前,它显示的是气球提示,但当我单击它时,委托没有被触发。

这就是创建NotifyIcon的地方。

代码语言:javascript
复制
    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();
    }

这就是所谓的气球尖端。

代码语言:javascript
复制
        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为您创建的方法进行了尝试,但这也不起作用。

变到

代码语言:javascript
复制
            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);

现在,所有的代码都在一种方法中,但仍然无法工作。所有事件都没有发生

已更新

这是因为我没有在主线程上运行该方法。谢谢你的帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-29 01:22:18

尝试替换以下内容:

代码语言:javascript
复制
notifyIcon.BalloonTipClicked += delegate
    {
        //NOT GOING HERE :(
        MessageBox.Show("TEST");
    };

通过以下方式:

代码语言:javascript
复制
notifyIcon.BalloonTipClicked += (sender, e) => {
    //Your code.
};
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32281509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档