title: Open a second winform asynchronously but still behave as a child to the parent form?
body: <p>I am creating an application and I would like to implement a progress window that appears when a lengthy process is taking place.</p>
  
  <p>I've created a standard windows form project to which I've created my app using the default form. I've also created a new form to use as a progress window.</p>
  
  <p>The problem arises when i open the progress window (in a function) using:</p>
  
  <pre><code>ProgressWindow.ShowDialog();
  </code></pre>
  
  <p>When this command is encountered, the focus is on the progress window and I assume it's now the window who's mainloop is being processed for events. The downside is it blocks the execution of my lengthy operation in the main form.</p>
  
  <p>If I open the progress window using:</p>
  
  <pre><code>ProgressWindow.Show();
  </code></pre>
  
  <p>Then the window opens correctly and now doesn't block the execution of the main form but it doesn't act as a child (modal) window should, i.e. allows the main form to be selected, is not centered on the parent, etc..</p>
  
  <p>Any ideas how I can open a new window but continue processing in the main form?</p>