title: Showing a MessageBox cancels SupressKeyPress=true
body: <p>I have a form with a multiline <code>TextBox</code> on it. When the user wants to create a new line, he should press <kbd>Shift</kbd>+<kbd>Enter</kbd>, but when he presses only <kbd>Enter</kbd>, nothing should happen. So here is my code:</p>
  
  <pre><code>private void TextBox1_KeyDown(object sender, KeyEventArgs e)
  {
      if (e.KeyData == (Keys.Shift | Keys.Enter))
      {
          int pos = textBox1.SelectionStart;
          textBox1.SelectedText = Environment.NewLine;
          textBox1.SelectionStart = pos + 2;
          e.Handled = e.SuppressKeyPress = true;
          return;
      }
      if (e.KeyCode == Keys.Enter)
      {
          e.SuppressKeyPress = true;
      }
  }
  </code></pre>
  
  <p>This works perfectly.</p>
  
  <p>When the user presses only <kbd>Enter</kbd>, I want to show a <code>MessageBox</code>, so I added the following line:</p>
  
  <pre><code>    ...
      if (e.KeyCode == Keys.Enter)
      {
          MessageBox.Show("Hello"); // &lt;-- Here
          e.SuppressKeyPress = true;
      }
  </code></pre>
  
  <p>The problem is that now after the <code>MessageBox</code> is shown, the cursor goes down one line, which I do not want.</p>
  
  <p>How can I fix that? I tried to change the order between the <code>MessageBox</code> and the keypress suppression but it doesn't seem to work.</p>