QueryContinueDragEventArgs.KeyState 属性

定义

获取 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的类型的实例(如 ButtonComboBox)的项目中。 然后命名实例 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.DropKeyState

适用于

另请参阅