UserControl 如何接收键盘响应事件
keyDown 事件
if(e.KeyCode.ToString() =="Escape"){
MessageBox.Show("OK");
} 不行。
请教如何才能接收到..
protected override bool ProcessDialogKey(Keys keyData){
if (keyData == Keys.Escape){
//
}
return base.ProcessDialogKey(keyData);
}
Control.ProcessDialogKey(Keys) Method
Definition
Namespace:
Assembly:
System.Windows.Forms.dll
Processes a dialog key.
C#Copy
protected virtual bool ProcessDialogKey (System.Windows.Forms.Keys keyData);
Parameters
keyData
One of the Keys values that represents the key to process.
Returns
true
if the key was processed by the control; otherwise, false
.
Remarks
This method is called during message preprocessing to handle dialog characters, such as TAB, RETURN, ESC, and arrow keys. This method is called only if the IsInputKey method indicates that the control is not processing the key.
The ProcessDialogKey simply sends the character to the parent's ProcessDialogKey method, or returns false
if the control has no parent.
The Form class overrides this method to perform actual processing of dialog keys. This method is only called when the control is hosted in a Windows Forms application or as an ActiveX control.
Notes to Inheritors
When overriding the ProcessDialogKey(Keys) method in a derived class, a control should return true
to indicate that it has processed the key. For keys that are not processed by the control, the result of calling the base class's ProcessDialogChar(Char) method should be returned. Controls will seldom, if ever, need to override this method.