title: Timer is triggering event on another instance of my Form
body: <p>I have multiple instances of the same dialog.  I pass in an enum so that the dialog knows what information to display.  I have timers within my Form that trigger actions (in this case a button click for an example).  However, when these timers trigger, they get caught by only one (and always the last Form created) and not the other Forms.  I would like the Form that triggered the timer to catch it.  What am I missing?</p>
  
  <pre><code>public partial class Form1 : Form
  {
      public enum Animal { CAT, DOG, PIG };
      public Form1()
      {
          InitializeComponent();
  
          Form2 F21 = new Form2(Animal.CAT);
          F21.Show();
  
          Form2 F22 = new Form2(Animal.DOG);
          F22.Show();
  
          Form2 F23 = new Form2(Animal.PIG);
          F23.Show();
      }
  
  public partial class Form2 : Form
  {
      int buttonCount = 0;
      Form1.Animal Animal;
      private static System.Threading.Timer refreshListViewTimer;
  
      public Form2(Form1.Animal TheAnimal)
      {
          InitializeComponent();
          Animal = TheAnimal;
          Text = TheAnimal.ToString();
          refreshListViewTimer = new System.Threading.Timer(OnRefreshListTimer);
      }
  
      private void button1_Click(object sender, EventArgs e)
      {
          refreshListViewTimer.Change(50, System.Threading.Timeout.Infinite);
      }
  
      private void OnRefreshListTimer(object sender)
      {
          if (!this.IsDisposed)
              Invoke(new RefreshListDelegate(this.RefreshList), new object[] { });
      }
  
      private delegate void RefreshListDelegate();
      private void RefreshList()
      {
          buttonCount++;
          Text = this.Animal.ToString() + " " + buttonCount.ToString();
      }
  }
  </code></pre>
  
  <p>In this case, no matter which Form I click the button, the PIG dialog will always be incremented.</p>