QueryContinueDragEventArgs.KeyState QueryContinueDragEventArgs.KeyState QueryContinueDragEventArgs.KeyState QueryContinueDragEventArgs.KeyState Property


Shift、Ctrl、Alt の各キーの現在の状態を取得します。Gets the current state of the SHIFT, CTRL, and ALT keys.

 property int KeyState { int get(); };
public int KeyState { get; }
member this.KeyState : int
Public ReadOnly Property KeyState As Integer


Shift、Ctrl、Alt の各キーの現在の状態。The current state of the SHIFT, CTRL, and ALT keys.

このメンバーの使用例を次のコード例に示します。The following code example demonstrates the use of this member. この例では、イベントハンドラーがControl.QueryContinueDragイベントの発生を報告します。In the example, an event handler reports on the occurrence of the Control.QueryContinueDrag event. このレポートは、イベントがいつ発生し、デバッグに役立つかを理解するのに役立ちます。This report helps you to learn when the event occurs and can assist you in debugging. 複数のイベントまたは頻繁に発生するイベントについてレポートMessageBox.ShowするConsole.WriteLineには、メッセージをに置き換えるTextBoxか、または複数行に追加することを検討してください。To report on multiple events or on events that occur frequently, consider replacing MessageBox.Show with Console.WriteLine or appending the message to a multiline TextBox.

コード例を実行するにControl Buttonは、やComboBoxなど、から継承された型のインスタンスを含むプロジェクトに貼り付けます。To run the example code, paste it into a project that contains an instance of a type that inherits from Control, such as a Button or ComboBox. 次に、インスタンスControl1にという名前を付け、イベントハンドラーがControl.QueryContinueDragイベントに関連付けられていることを確認します。Then name the instance Control1 and ensure that the event handler is associated with the Control.QueryContinueDrag event.

private void Control1_QueryContinueDrag(Object sender, QueryContinueDragEventArgs e) {

System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "KeyState", e.KeyState );
messageBoxCS.AppendFormat("{0} = {1}", "EscapePressed", e.EscapePressed );
messageBoxCS.AppendFormat("{0} = {1}", "Action", e.Action );
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.AppendFormat("{0} = {1}", "EscapePressed", e.EscapePressed)
    messageBoxVB.AppendFormat("{0} = {1}", "Action", e.Action)
    MessageBox.Show(messageBoxVB.ToString(),"QueryContinueDrag Event")

End Sub


KeyStateプロパティで設定されているビットは、操作中に押されたキーまたはマウスボタンを識別します。The bits that are set in the KeyState property identify the keys or mouse buttons that were pressed during the operation. たとえば、マウスの左ボタンが押されている場合、 KeyStateプロパティの最初のビットが設定されます。For example, if the left mouse button is pressed, the first bit in the KeyState property is set. ビットごとANDの演算子を使用すると、特定のキー状態を調べることができます。You can use the bitwise AND operator to test for a given key state.

次の表に、指定したイベントに対して設定されているビットを示します。The following table lists the bits that are set for a specified event.

ビットBit キーKey
11 マウスの左ボタンThe left mouse button.
22 マウスの右ボタンThe right mouse button.
44 Shift キーThe SHIFT key.
88 CTL キー。The CTL key.
1616 マウスの中央ボタンThe middle mouse button.
3232 Alt キー。The ALT key.

既定QueryContinueDragでは、イベントは、左KeyState 、中央、または右のマウスボタンが押されたことを示す場合ににDragAction.Drop設定Actionされます。By default, the QueryContinueDrag event sets Action to DragAction.Drop if KeyState indicates that the left, middle, or right mouse button is pressed.