KeyPress的解释是:
Occurs when a character. space or backspace key is pressed while the control has focus.方向键不是character, space或者backspace,因此不fire很好理解。但是我自己试了下keydown也不fire, 我测试的是form, 你可以试一试其它control. 按理说可以。
最后我是使用这种方法
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == Keys.Left)
            {
                MessageBox.Show("You pressed Left arrow key");
                return true;
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }
参考:
http://stackoverflow.com/questions/13163447/detecting-arrows-keys-in-winforms