我在這樣的控制覆蓋ProcessCmdKey
:按下右箭頭使向上箭頭被設置
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if ((keyData & Keys.Up) == Keys.Up)
MessageBox.Show("Up arrow");
else if ((keyData & Keys.Right) == Keys.Right)
MessageBox.Show("Right arrow");
// it doesn't matter what I return, the glitch happens anyway
return base.ProcessCmdKey(ref msg, keyData);
}
當我按下向上箭頭鍵,將出現消息Up arrow
,但它也出現當我按下右箭頭鍵。爲什麼是這樣?
我真的不知道,但你不會使用'((Keys)keyData)== Keys.Up)'? – Ben
@mazzzzz我現在這樣做(不知道它爲什麼會工作,因爲它如何等於'Keys.Right'還有'(&Keys.Up)== Keys.Up'?)但我希望它做當按住Shift鍵時不需要再次在單獨的if中寫入條件。 –
不是OT,但只是在你的事件處理器上設置斷點並檢查它。 –