title: Form.Close() is closing other form (dialog) also
body: <p>I have a simple winforms application. The application starts with MainForm which is hidden all the time. MainForm opens another form called Notification (.Show) which closes after 10 seconds. So if the MainForm opens a dialog form (.ShowDialog) while Notification is still open, the open dialog also closes if Notification hits 10 seconds and closes.</p>
  
  <p>The Notification form as well as the dialog form have <code>TopMost = True</code></p>
  
  <p>An example:</p>
  
  <p>Short example:
  The OtherDialogForm closes also even if my application only does this:</p>
  
  <pre><code>public partial class MainForm : Form
  {
      public MainForm()
      {
          InitializeComponent();
          new Notification("Title", "Content").Show(); // closes itself after 10 seconds
          new OtherDialogForm().ShowDialog(); // being closed by form above (not wanted)
      }
  }
  </code></pre>
  
  <p>Longer example:
  MainForm.cs</p>
  
  <pre><code>public partial class MainForm : Form
  {
      protected override void SetVisibleCore(bool value)
      {
          base.SetVisibleCore(false);
      }
  
      public MainForm() 
      {
          CreateNotification();
      }
  
      public void CreateNotification()
      {
          new Notification.Show();
      }
  
      // triggered while Notification (from above) is still open
      private async void TriggeredByHotkey()
      {
          using (OtherDialogForm dialog = new OtherDialogForm())
          {
              dialog.ShowDialog();
              // if DialogResult == ...
          }
      }
  }
  </code></pre>
  
  <p>Notification.cs</p>
  
  <pre><code>public partial class Notification : Form
  {
      Timer timer;
  
      public Notification()
      {
          // sets timer tick to 10 seconds,
          // then calls void with this.Close()
      }
  
      // not sure if I really need this, but the problem is still there without
      protected override CreateParams CreateParams
      {
          get
          {
              var cp = base.CreateParams;
              cp.ExStyle |= 8;  // Turn on WS_EX_TOPMOST
              return cp;
          }
      }
  }
  </code></pre>
  
  <p>I have really no idea why the dialog closes together with Notification.</p>