title: A new message box appears with each second after it appears
body: <p>I ran into an issue where i tried displaying a display box after a countdown reached a certain time but for some odd reason it replicates with each second despite it having already passed the initial time it was supposed to appear. This is what i tried to do but now the timer has stopped and the time remaining column has stopped runng.</p>
  <pre><code> public partial class Form1 : Form
  {
      private List&lt;CSession&gt; sessionlist = new List&lt;CSession&gt;();
      private TimeSpan workingTimeSpan = new TimeSpan();
      private TimeSpan fiveMinutes = new TimeSpan(0,1,0);
      private TimeSpan oneSecond = new TimeSpan(0,0,1);
      public Form1()
      {
          InitializeComponent();
          timer1.Enabled = true;
          timer1.Start();
      }
  
  
      private void label1_Click(object sender, EventArgs e)
      {
  
      }
  
      private void AddTime_Click(object sender, EventArgs e)
      {
          
          workingTimeSpan += fiveMinutes;
  
          DisplayWorkingTimeSpan();
      }
  
      private void DisplayWorkingTimeSpan()
      {
          TimerLabel.Text = workingTimeSpan.ToString();
      }
  
      private void DecreaseTime_Click(object sender, EventArgs e)
      {
          TimeSpan fiveMinutes = new TimeSpan(0,5,0);
          workingTimeSpan -= fiveMinutes;
  
          DisplayWorkingTimeSpan();
      }
  
      private void Confirm_Click(object sender, EventArgs e)
      {
          CSession newSession = new CSession();
  
          if(PasswordText.Text == &quot;&quot;)
          {
              MessageBox.Show(&quot;Password not entered&quot;);
              return;
          }
  
          newSession.password = PasswordText.Text;
          newSession.purchased_time = workingTimeSpan;
          newSession.remaining_time = workingTimeSpan;
          newSession.status = &quot;Online&quot;;
  
          sessionlist.Add(newSession);
          PasswordText.Text = &quot;&quot;;
          TimerLabel.Text = &quot;&quot;;
          workingTimeSpan = new TimeSpan();
      }
  
      private void DisplayAllSessions()
      {
          listView1.Items.Clear();
  
          foreach(CSession c in sessionlist)
          {
              string[] row = { c.password, c.purchased_time.ToString(), c.remaining_time.ToString(), c.status };
              ListViewItem i = new ListViewItem(row);
              listView1.Items.Add(i);
          }
      }
      private void timer1_Tick(object sender, EventArgs e)
      {
          foreach(CSession c in sessionlist)
          {
              if (c.remaining_time.TotalMinutes == 5)
              {
                  timer1.Stop();
                  MessageBox.Show(&quot;Time almost up for client.&quot;);
                  
              }
  
              if (c.remaining_time.TotalSeconds &lt; 1)
              {
                  c.status = &quot;Offline&quot;;
              }
             
              if(c.status == &quot;Online&quot;)
              {
                 c.remaining_time -= oneSecond;
              }
  
          }
  
          DisplayAllSessions();
      }
  
      private void exitToolStripMenuItem_Click(object sender, EventArgs e)
      {
          Close();
      }
  }
  </code></pre>