ToolStripItem.QueryContinueDrag イベント

定義

ドラッグ アンド ドロップ操作中に発生し、ドラッグ ソースがドラッグ アンド ドロップ操作をキャンセルする必要があるかどうかを決定できるようにします。

public:
 event System::Windows::Forms::QueryContinueDragEventHandler ^ QueryContinueDrag;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.QueryContinueDragEventHandler QueryContinueDrag;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.QueryContinueDragEventHandler? QueryContinueDrag;
[<System.ComponentModel.Browsable(false)>]
member this.QueryContinueDrag : System.Windows.Forms.QueryContinueDragEventHandler 
Public Custom Event QueryContinueDrag As QueryContinueDragEventHandler 

イベントの種類

属性

次のコード例では、このメンバーの使用方法を示します。 この例では、イベント ハンドラーがイベントの QueryContinueDrag 発生を報告します。 このレポートは、イベントが発生したタイミングを確認するのに役立ち、デバッグに役立ちます。 複数のイベントまたは頻繁に発生するイベントを報告するには、 を Console.WriteLine に置き換えるかMessageBox.Show、複数行TextBoxにメッセージを追加することを検討してください。

コード例を実行するには、 や ToolStripMenuItemなどの をToolStripItem継承する型のインスタンスを含むプロジェクトにToolStripButton貼り付けます。 次に、インスタンス ToolStripItem1 に名前を付け、イベント ハンドラーがイベントに QueryContinueDrag 関連付けられていることを確認します。

private void ToolStripItem1_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 ToolStripItem1_QueryContinueDrag(sender as Object, e as QueryContinueDragEventArgs) _ 
     Handles ToolStripItem1.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

注釈

このイベントは QueryContinueDrag 、ドラッグ アンド ドロップ操作中にキーボードまたはマウス ボタンの状態が変更されると発生します。 イベント QueryContinueDrag を使用すると、ドラッグ ソースでドラッグ アンド ドロップ操作を取り消す必要があるかどうかを判断できます。

次の解説では、ドラッグ アンド ドロップ操作に関連するイベントが発生する方法とタイミングについて説明します。

メソッドは DoDragDrop 、現在のカーソル位置の下にある項目を決定します。 次に、項目が有効なドロップ ターゲットであるかどうかを確認します。

項目が有効なドロップ ターゲットの場合、 GiveFeedback ドラッグ アンド ドロップ効果を指定してイベントが発生します。 ドラッグ アンド ドロップ効果の一覧については、DragDropEffects 列挙体を参照してください。

マウス カーソルの位置、キーボードの状態、およびマウス ボタンの状態の変更は、次の方法で追跡されます。

  • ユーザーがウィンドウの外に移動した場合、DragLeave イベントが生成されます。

  • マウスが別の項目に入ると、そのコントロールの が DragEnter 発生します。

  • マウスが移動しても、同じ項目内に留まる場合は、 DragOver イベントが発生します。

キーボードまたはマウス ボタンの状態が変更された場合、イベントが発生し、QueryContinueDragドラッグを続行するか、データをドロップするか、イベントQueryContinueDragEventArgsの の プロパティの値に基づいて操作をAction取り消すかが決定されます。

DragAction 値が Continueの場合、操作を DragOver 続行するためにイベントが発生し、 GiveFeedback 適切な視覚的フィードバックを設定できるように、新しい効果でイベントが発生します。 有効なドロップ効果の一覧については、DragDropEffects 列挙体を参照してください。

DragOverイベントと GiveFeedback イベントはペアになっているため、マウスがドロップ ターゲットを移動すると、次のように、マウスの位置に関する最新のフィードバックがユーザーに与えられます。

  • DragAction 値が Dropの場合、ドロップ効果の値がソースに返されるため、ソース アプリケーションはソース データに対して適切な操作を実行できます。たとえば、操作が移動の場合はデータを切り取ります。

  • の値が のDragActionCancel場合、イベントが発生しますDragLeave

適用対象