我使用KeyDown和KeyUp事件進行控制,如下所示。我遇到的問題是在KeyDown中'x'爲TRUE,但在KeyUp中始終爲FALSE。我正在嘗試檢測Alt鍵(正如您可能已經猜到的那樣)。在Control.KeyUp事件中檢測到Alt鍵的問題
有沒有我不知道的gottcha。我的意思是,當我按下Alt鍵時,它會檢測到它確定,但是在鍵入時它是錯誤的。
任何建議/想法
感謝
private void MyControl_KeyDown(object sender, KeyEventArgs e)
{
bool x;
x = ((int) (e.KeyData & Keys.Alt) != 0);
x = (e.KeyData & Keys.Alt) == Keys.Alt;
x = e.Alt;
}
private void MyControl_KeyUp(object sender, KeyEventArgs e)
{
bool x;
x = ((int) (e.KeyData & Keys.Alt) != 0);
x = (e.KeyData & Keys.Alt) == Keys.Alt;
x = e.Alt;
}
不,我只是想檢測Alt鍵是所有,沒有組合。 – ababeel 2010-02-09 06:24:07
我在上面的答案中添加了代碼。因爲Alt服務於顯示菜單的目的,所以你必須做一個e.Handled = true,除非你只想捕獲50%的Alt鍵。 KeyUp的檢查與KeyDown稍有不同(參見上文)。那對你有用嗎? – bluecoder 2010-02-09 07:28:05
謝謝你的工作。 – ababeel 2010-02-09 22:36:37