title: Sometimes keypress method is not being implemented
body: <p>in my c# win-form application, i use a user-defined calculator win-form which can be used either by mouse clicking or keyboard numpad. I get buttons clicking by mouse but cannot get keystrokes by "keypress" method of the Form. </p>
  
  <p>Actually, keypress method works when program first starts but after a couple of keystroke, the keypress method doesn't catch the keystokes. I tested using breakpoints but the breakpoits are not implemented either after a while.</p>
  
  <p>Form's keypreview property is set to true. I tested also with and without " e.Handled = true;" but doesn't make sense. Any answer will be appreciated. </p>
  
  <pre><code>private void Form1_KeyPress(object sender, KeyPressEventArgs e)
  {
      string key = "";
      if (textBox1.Text.Equals("UNDEFINED")) textBox1.Text = "0";
      else if (textBox1.Text.Equals("ERROR") || textBox1.Text == "FULL")
      {
          textBox2.Text = " ";
          textBox1.Text = "0";
      }
  
      switch ((int)e.KeyChar)
      {
          case 8: BtnEraser(); lastWork= "btnErase"; break;// Backspace (erase);
          case 13:
          case 42:
          case 43:
          case 45:
          case 47:
              key = (int)e.KeyChar == 13 ? "Enter" : e.KeyChar.ToString(); BtnWork(key);
              lastWork= key.Equals("Enter") ? "btnEqual" : "btnAdd"; break; // equal or math operations
  
          case 27: textBox1.Text = "0"; textBox2.Text = " "; lastWork= "btnC"; break;// btnCe;
  
          case 44: textBox1.Text = textBox1.Text.Comma(); lastWork= "btnComma"; break;
  
          case 48:
          case 49:
          case 50:
          case 51:
          case 52:
          case 53:
          case 54:
          case 55:
          case 56:
          case 57:
              BtnNumber(e.KeyChar.ToString());
              lastWork= "btn5"; break; // 0-9 Number-entry
  
          default:
              break;
      }
  
      e.Handled = true;
  }
  </code></pre>