Winforms 关键事件处理程序不';不要在窗体级别开火

Winforms 关键事件处理程序不';不要在窗体级别开火,winforms,events,input,event-handling,c++-cli,Winforms,Events,Input,Event Handling,C++ Cli,上述事件处理程序从不激发。但窗体的子控件的处理程序会执行此操作。问题是什么?除了拥有事件处理程序外,还需要将表单的属性设置为true。根据MSDN: 当此属性设置为true时,表单将接收所有按键、按键向下和按键向上事件。表单的事件处理程序完成对击键的处理后,击键将被分配给具有焦点的控件 谢谢你的快速回答! {Form constructor} this->KeyDown += gcnew KeyEventHandler(this, &Form::Form_KeyDown); ...

上述事件处理程序从不激发。但窗体的子控件的处理程序会执行此操作。问题是什么?

除了拥有事件处理程序外,还需要将表单的属性设置为
true
。根据MSDN:

当此属性设置为true时,表单将接收所有按键、按键向下和按键向上事件。表单的事件处理程序完成对击键的处理后,击键将被分配给具有焦点的控件


谢谢你的快速回答!
{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");
}