MessageBox не появляется C # - PullRequest
0 голосов
/ 11 июля 2019

Я новичок в C #, поэтому мне нужна ваша помощь.В моей программе я хочу сделать предупреждение.Поэтому в моем приложении я хочу, чтобы появился MessageBox, когда (например) осталась одна минута, но она не появилась.Я попытался использовать переменную DateTime один для будущего (предстоящего) времени, поэтому я беру 2019/7/12 0: 29: 0 AM, а один - для текущего времени, затем я сравниваю их оба в операторе if, если текущее время 2019/ 7/12 0: 28: 0 Должен появиться MessageBox (см. Код ниже).Но это не работает.

Заранее спасибо.

Вот мой код:

 public Form1()
 {
     InitializeComponent();
     TimeCounter();
 }

 public void TimeCounter()
 {
     DateTime dt1 = new DateTime(2019, 7, 12, 0, 29, 0);
     DateTime dt2 = DateTime.Now;

     if (dt2.Minute == dt1.Minute - 1)
     {
          MessageBox.Show("1 Minute left");
     }
 }

1 Ответ

1 голос
/ 12 июля 2019

Попробуйте, я изменил ваш код для использования таймера. Не скомпилировали это, но оно должно быть достаточно близко, чтобы начать работать.

 public Form1()
 {
     InitializeComponent();

     timer = new Timer();
     timer.Interval = 1000; // this is every second
     timer.Enabled = true;
     timer.Tick += timer_Tick;  // Ties the function below to the Tick event of the timer
     timer.Start(); // starts the timer, it will fire its tick even every interval
 }

 // these needs to go here so they are in class scope
 Timer timer; 
 DateTime dt1 = new DateTime(2019, 7, 12, 0, 29, 0);

 public void timer_Tick(object sender, EventArgs e)
 { 
     if (dt1.AddMinutes(-1) > DateTime.Now)
     {
          MessageBox.Show("1 Minute left");
          timer.Stop();  // stop the timer so you dont see the same message box every second 
     }
 }
...