这是我的代码:

private void btnReminder_Click(object sender, EventArgs e)
{
    timer2.Start();
}

private void timer2_Tick(object sender, EventArgs e)
{
    DateTime Date = DateTimePickerReminderDate.Value;
    DateTime Time = DateTimePickerReminderTime.Value;
    if (DateTime.Now.CompareTo(Date) > 0 && DateTime.Now.CompareTo(Time) > 0)
    {
        Date = DateTime.MaxValue;
        Time = DateTime.MaxValue;
        MessageBox.Show("Your Reminder");

        timer2.Stop();
    }
}

当我设置提醒它按预期工作并在正确的时间显示消息时。但问题是,它不断弹出消息框我试图清除这个错误,但我没有成功。所以现在我需要专家建议所以请帮我清除这个错误。

最佳答案

MessageBox 将在显示时阻塞您的 UI 线程,并且在单击对话框之前您将无法到达 timer.Stop()
尝试在 显示您的 MessageBox 之前停止计时器 :

private void timer2_Tick(object sender, EventArgs e)
{
    DateTime Date = DateTimePickerReminderDate.Value;
    DateTime Time = DateTimePickerReminderTime.Value;
    if (DateTime.Now.CompareTo(Date) > 0 && DateTime.Now.CompareTo(Time) > 0)
    {
        timer2.Stop();

        Date = DateTime.MaxValue;
        Time = DateTime.MaxValue;
        MessageBox.Show("Your Reminder");
    }
}

关于c# - C# WinForm 中 MessageBox 的连续弹出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35391226/

10-12 12:43
查看更多