2012-08-30 155 views
-3

爲什麼在VS 2010中不起作用?點擊它後,我在表單中按「a」,沒有任何反應。KeyEventArgs事件不起作用

private void Form1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyData == Keys.A) 
     { 
      MessageBox.Show("A"); 
     } 
    } 
+1

「不工作」你的意思是? – Maxwe11

+1

歡迎來到StackOverflow。當你輸入「不起作用」或「錯誤」或「訪問違規」時,你應該輸入的*下一個*就是這個意思。在「不起作用」的情況下,你應該解釋*如何*它不像你所期望的那樣工作。如果您遇到錯誤,請發佈您收到的* exact *錯誤消息。我們無法看到你的屏幕或閱讀你的想法,所以我們只知道你決定告訴我們你的問題。如果您希望我們爲您提供幫助,請詳細說明並提供詳細信息。謝謝。 :-) –

+0

大約有10個「不起作用」的理由。數字十一是當它有任何可以獲得焦點的子控件時,表單無法獲得焦點。 –

回答

0

當您按下鍵時,窗體可能沒有焦點。

獲取或設置指示事件被傳遞給具有焦點的控制之前的形式是否將接收鍵事件 的值。

this.KeyPreview = true; 
+0

謝謝,我補充說。但是,當我點擊窗體並按下A鍵時,什麼也沒有發生。我剛開始學習,教程沒有提到這一點。KeyPreview = true; –

1

使用的KeyPreview:

public Form1() 
{ 
    InitializeComponent(); 
    this.KeyPreview = true; 
} 
0

是KeyEventHandler分配?

KeyDown += Form1_KeyDown;