使用NotifyIcon和Timer C提醒#

时间:2017-05-08 16:58:10

标签: c# notifyicon

我写了一些代码来创建提醒。它应该在上午10点通过通知警告我。为了实现这一点,我创建了一个DateTime对象作为DateTime.Now以获取本地时间,并且我使用计时器检查每一分钟是否与我想要被警告的时间相同。问题是我的应用程序仅在表单加载时通知我,但是当时间到来并且应用程序已经运行时它不会通知我。 我会留下下面的代码。提前谢谢。

public partial class Form1 : Form
{
    NotifyIcon notify;
    DateTime now;
    public Form1()
    {
        InitializeComponent();
        notify = new NotifyIcon()
        {
            Visible = true,
            Icon = Properties.Resources.icon,
            BalloonTipTitle = this.Text
        };
        now = DateTime.Now;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        timer1.Start();
    }
    private void notification()
    {
        while(true)
        {
            if (now.Hour.Equals(10) && now.Minute.Equals(30))
            {
                notify.BalloonTipText = "It's 10:30 am";
                notify.ShowBalloonTip(3000);
                timer1.Stop();
                notify.Dispose();
            }
        }
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        notification();
    }
}

1 个答案:

答案 0 :(得分:2)

  1. a移除while(true)循环。你有定时调用notification的定时器 - 现在你在第一次打勾后无限地检查时间。

  2. 必须在每次打勾时分配
  3. notification,而不是在启动时。

  4. now