Control.ProcessKeyMessage(Message) 方法


处理键盘消息。Processes a keyboard message.

protected public:
 virtual bool ProcessKeyMessage(System::Windows::Forms::Message % m);
protected internal virtual bool ProcessKeyMessage (ref System.Windows.Forms.Message m);
abstract member ProcessKeyMessage : Message -> bool
override this.ProcessKeyMessage : Message -> bool
Protected Friend Overridable Function ProcessKeyMessage (ByRef m As Message) As Boolean



通过引用传递的 Message,表示要处理的窗口消息。A Message, passed by reference, that represents the window message to process.



如果消息已由控件处理,则为 true;否则为 falsetrue if the message was processed by the control; otherwise, false.


当控件收到键盘消息时,将调用此方法。This method is called when a control receives a keyboard message. 方法首先确定控件是否有父级;如果是,它将调用父级的 ProcessKeyPreview 方法。The method first determines whether the control has a parent; if so, it calls the parent's ProcessKeyPreview method. 如果父的 ProcessKeyPreview 方法不处理该消息,则 ProcessKeyEventArgs 调用方法以生成相应的键盘事件。If the parent's ProcessKeyPreview method does not process the message then the ProcessKeyEventArgs method is called to generate the appropriate keyboard events. m参数包含必须处理的窗口消息。The m parameter contains the window message that must be processed. 属性的可能值为 Message.Msg WM_CHAR、WM_KEYDOWN、WM_SYSKEYDOWN、WM_KEYUP 和 WM_SYSKEYUP。Possible values for the Message.Msg property are WM_CHAR, WM_KEYDOWN, WM_SYSKEYDOWN, WM_KEYUP, and WM_SYSKEYUP.


重写 ProcessKeyMessage(Message) 方法时,控件应返回 true 以指示它已处理该键。When overriding the ProcessKeyMessage(Message) method, a control should return true to indicate that it has processed the key. 对于不是由控件处理的键,应返回基类的结果 ProcessKeyEventArgs(Message)For keys that are not processed by the control, the result of the base class's ProcessKeyEventArgs(Message) should be returned. 控件很少需要重写此方法(如果需要)。Controls will seldom, if ever, need to override this method.