Control.ProcessCmdKey(Message, Keys) 方法

定义

处理命令键。

protected:
 virtual bool ProcessCmdKey(System::Windows::Forms::Message % msg, System::Windows::Forms::Keys keyData);
protected virtual bool ProcessCmdKey (ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData);
abstract member ProcessCmdKey : Message * System.Windows.Forms.Keys -> bool
override this.ProcessCmdKey : Message * System.Windows.Forms.Keys -> bool
Protected Overridable Function ProcessCmdKey (ByRef msg As Message, keyData As Keys) As Boolean

参数

msg
Message

通过引用传递的 Message,表示要处理的窗口消息。

keyData
Keys

Keys 值之一,表示要处理的键。

返回

Boolean

如果字符已由控件处理,则为 true;否则为 false

注解

在消息预处理期间调用此方法来处理命令键。 命令键是始终优先于常规输入键的键。 命令键的示例包括快捷键和菜单快捷方式。 该方法必须返回 true 以指示它已处理命令键,或 false 指示该键不是命令键。 仅当控件托管在Windows 窗体应用程序或 ActiveX 控件中时,才调用此方法。

该方法 ProcessCmdKey 首先确定控件是否具有一个 ContextMenu,如果是这样,则允许 ContextMenu 处理命令键。 如果命令键不是菜单快捷方式,并且控件具有父级,则键将传递给父 ProcessCmdKey 级的方法。 净效果是命令键“浮出水面”控件层次结构。 除了用户按下的键外,键数据还指示与键同时按下了哪些修饰键(如果有的话)。 修饰键包括 SHIFT、Ctrl 和 ALT 键。

继承者说明

重写 ProcessCmdKey(Message, Keys) 派生类中的方法时,控件应返回 true 以指示它已处理密钥。 对于控件未处理的键,应返回调用基类 ProcessCmdKey(Message, Keys) 方法的结果。 控件很少(如果有)需要重写此方法。

适用于