2010-10-29 79 views
2
{Form constructor} 
this->KeyDown += gcnew KeyEventHandler(this, &Form::Form_KeyDown); 
... 

void Form1::Form_KeyDown(Object^ Sender, KeyEventArgs^ E) 
{ 
    MessageBox::Show("Key = " + E->KeyCode.ToString(), "Test"); 
} 

上述事件處理程序從不觸發。但表單的子控件'處理程序呢。會有什麼問題?關鍵事件處理程序不在表單級別觸發

回答

2

除了擁有您的事件處理程序,您需要將表單的KeyPreview屬性設置爲true。根據MSDN:

當此屬性設置爲true時,表單將接收所有KeyPress,KeyDown和KeyUp事件。在表單的事件處理程序完成鍵擊處理之後,將鍵擊分配給具有焦點的控件。

+0

感謝您的極快答案! – shadeMe 2010-10-29 05:38:45

相關問題