QueryContinueDragEventArgs.KeyState 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取 Shift、Ctrl 和 Alt 键的当前状态。
public:
property int KeyState { int get(); };
public int KeyState { get; }
member this.KeyState : int
Public ReadOnly Property KeyState As Integer
属性值
Shift、Ctrl 和 Alt 键的当前状态。
示例
下面的代码示例演示了此成员的用法。 在此示例中,事件处理程序报告事件的发生情况 Control.QueryContinueDrag 。 此报告可帮助你了解事件发生的时间,并可以帮助你进行调试。 若要报告多个事件或频繁发生的事件,请考虑将 MessageBox.ShowConsole.WriteLine 消息替换为 或将消息追加到多行 TextBox。
若要运行示例代码,请将其粘贴到包含继承自 Control的类型的实例(如 Button 或 ComboBox)的项目中。 然后命名实例 Control1
并确保事件处理程序与事件 Control.QueryContinueDrag 相关联。
private void Control1_QueryContinueDrag(Object sender, QueryContinueDragEventArgs e) {
System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "KeyState", e.KeyState );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "EscapePressed", e.EscapePressed );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Action", e.Action );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "QueryContinueDrag Event" );
}
Private Sub Control1_QueryContinueDrag(sender as Object, e as QueryContinueDragEventArgs) _
Handles Control1.QueryContinueDrag
Dim messageBoxVB as New System.Text.StringBuilder()
messageBoxVB.AppendFormat("{0} = {1}", "KeyState", e.KeyState)
messageBoxVB.AppendLine()
messageBoxVB.AppendFormat("{0} = {1}", "EscapePressed", e.EscapePressed)
messageBoxVB.AppendLine()
messageBoxVB.AppendFormat("{0} = {1}", "Action", e.Action)
messageBoxVB.AppendLine()
MessageBox.Show(messageBoxVB.ToString(),"QueryContinueDrag Event")
End Sub
注解
属性中 KeyState 设置的位标识操作期间按下的键或鼠标按钮。 例如,如果按下鼠标左键,则设置 属性中的 KeyState 第一个位。 可以使用按 AND
位运算符来测试给定的键状态。
下表列出了为指定事件设置的位。
bit | 键 |
---|---|
1 | 鼠标左按钮。 |
2 | 鼠标右按钮。 |
4 | Shift 键。 |
8 | CTL 密钥。 |
16 | 鼠标中键。 |
32 | Alt 键。 |
默认情况下,QueryContinueDrag如果指示按下了鼠标左键、中间键或右键,则事件将 设置为 ActionDragAction.Drop 。KeyState