title: Preventing Focus-able Controls from stealing Keyboard Input
body: <p>I'm currently working on a simple game that is drawn on a form by overriding the <code>OnPaint</code> method. The game requires Keyboard input and was working perfectly until I decided to enhance the GUI and add a few Buttons to the form.</p>
  
  <p>The moment I added these Buttons, the form stopped receiving any Keyboard input, no matter how hard I tried the focus was always on the buttons. This behavior can be replicated by placing any Focus-able Control on the form. (ie. TextBox)</p>
  
  <p><strong>I don't need ANY Kayboard interaction with these buttons, I want the user to interact with them with the mouse only.</strong></p>
  
  <p>I've tried the following techniques to try and get around this problem - none of these worked:</p>
  
  <ul>
  <li>1) Normal <code>KeyDown</code> and <code>KeyUp</code> events of the form. (This is the way
  I was capturing Keyboard input before placing the buttons.)</li>
  <li>2) Overriding the Form's <code>OnKeyDown</code> and <code>OnKeyUp</code> events.</li>
  <li>3) Overriding <code>ProcessCmdKey</code> - <strong>Works</strong>, but cannot differentiate
  between KeyUp and KeyDown events, so it is inadequate for me.</li>
  </ul>
  
  <p>I also tried create a MessageFilter for the application, but I couldn't force it to capture only the Keyboard keys that I needed.</p>
  
  <p>I've been looking into this for many hours already and can't find a suitable solution.
  Help would be greatly appreciated.</p>