title: How to completely bring to front a WinForm when activated
body: <p>I have two dialogs, <code>FormA</code> and <code>FormB</code>. I use the following code to show (modeless) <code>FormB</code>. The code is a button click executed from <code>FormA</code>.</p>
  
  <pre><code>    private void button_Click(object sender, EventArgs e)
      {
          FormB fB = new FormB();
          fB.Show(this); // FormA is the owner of FormB
      }
  </code></pre>
  
  <p>The problem is that when <code>FormB</code> is over <code>FormA</code> on the screen, if I click <code>FormA</code>, it is activated, but not brought to front. Actually FormB is always over FormA</p>
  
  <p><img src="https://i.stack.imgur.com/BsLEX.png" alt="Forms"></p>
  
  <p>Do you know why, and how to change this behavior, without remove the owner property?</p>
  
  <p><strong>NOTE:</strong> This is a simplification of my problem. In the real problem, FormA is a Windows Explorer window, and FormB is a managed WinForm, but the behavior is the same. If I do not pass the IWin32Window to <code>Show()</code>, it works fine, but If I close A, B is not closed and it does not respond to events (see the following <a href="https://stackoverflow.com/questions/7000532/close-child-dialogs-when-closing-the-parent">entry</a>).</p>