title: Detect Arrow Keys - Multiple Keys at once
body: <p>I am trying to make simple app, that lets user to move around with arrows. So far, i managed to let user move up, down, left and right overriding ProcessCmdKey() method.</p>
  
  <pre><code>protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
          {
              if (keyData == Keys.Up)
              {
                  statek.Y--;
                  return true;
              }
              if (keyData == Keys.Left)
              {
                  statek.X--;
                  return true;
              }
              if (keyData == Keys.Right)
              {
                  statek.X++;
                  return true;
              }
              if (keyData == Keys.Down)
              {
                  statek.Y++;
                  return true;
              }
              return base.ProcessCmdKey(ref msg, keyData);
          }
  </code></pre>
  
  <p>The problem is, i would love to let the user, go diagonally too. Like up and right at same time. I tried to search for some solutions, but unfortunately without any luck.
  I will try to modify it, to make left/right keys to turn/rotate, so the up key would mean "forward", not "go up". But first of all, i need to make 2 keys at once possible. </p>
  
  <p>So the question is, how can i make possible, to use 2 keys at once, to move diagonally?</p>
  
  <p>PS. Atm, i am moving an ellipse on picturebox, changing <code>Point statek = new Point(250, 470);</code> cords, so everytime timers ticks, it checks if X or Y changed, and draw it in new place. Often ticks - That's how i tried to achieve Real-time movement for now. Thats not going to be any complex application.</p>