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