ToolStripItem.QueryContinueDrag ToolStripItem.QueryContinueDrag ToolStripItem.QueryContinueDrag ToolStripItem.QueryContinueDrag Event


ドラッグ アンド ドロップ操作中に発生し、ドラッグ ソースがドラッグ アンド ドロップ操作をキャンセルする必要があるかどうかを決定できるようにします。Occurs during a drag-and-drop operation and allows the drag source to determine whether the drag-and-drop operation should be canceled.

 event System::Windows::Forms::QueryContinueDragEventHandler ^ QueryContinueDrag;
public event System.Windows.Forms.QueryContinueDragEventHandler QueryContinueDrag;
member this.QueryContinueDrag : System.Windows.Forms.QueryContinueDragEventHandler 
Public Custom Event QueryContinueDrag As QueryContinueDragEventHandler 

次のコード例では、このメンバーの使用を示します。The following code example demonstrates the use of this member. 例では、イベント ハンドラーが発生するときに報告、QueryContinueDragイベント。In the example, an event handler reports on the occurrence of the QueryContinueDrag event. このレポートでは、イベントが発生してデバッグに役立つについて説明します。This report helps you to learn when the event occurs and can assist you in debugging. 複数のイベントまたは頻繁に発生するイベントを報告する、交換を検討MessageBox.ShowConsole.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.

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

private void ToolStripItem1_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 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.AppendFormat("{0} = {1}", "EscapePressed", e.EscapePressed)
    messageBoxVB.AppendFormat("{0} = {1}", "Action", e.Action)
    MessageBox.Show(messageBoxVB.ToString(),"QueryContinueDrag Event")

End Sub


QueryContinueDragドラッグ アンド ドロップ操作中にキーボードまたはマウス ボタンの状態の変更がある場合に、イベントが発生します。The QueryContinueDrag event is raised when there is a change in the keyboard or mouse button state during a drag-and-drop operation. QueryContinueDragイベントにより、ドラッグ ソースがドラッグ アンド ドロップ操作を取り消す必要があるかどうかを判断します。The QueryContinueDrag event allows the drag source to determine whether the drag-and-drop operation should be canceled.

次の「解説」では、ドラッグ アンド ドロップ操作に関連するイベントが発生した方法とタイミングについて説明します。The following remarks describe how and when events related to drag-and-drop operations are raised.

DoDragDropメソッドは、現在のカーソル位置の下にある項目を決定します。The DoDragDrop method determines the item under the current cursor location. 項目が有効なドロップ先であるかどうかを確認します。It then checks to see if the item is a valid drop target.

アイテムが、有効なドロップ ターゲットである場合、GiveFeedbackドラッグ アンド ドロップの効果が指定されたイベントが発生します。If the item is a valid drop target, the GiveFeedback event is raised with the drag-and-drop effect specified. ドラッグ アンド ドロップ効果の一覧については、DragDropEffects 列挙体を参照してください。For a list of drag-and-drop effects, see the DragDropEffects enumeration.

次のようにマウス カーソルの位置、キーボードの状態、およびマウス ボタンの状態の変更が追跡されます。Changes in the mouse cursor position, keyboard state, and mouse button state are tracked in the following manner:

  • ユーザーがウィンドウの外に移動した場合、DragLeave イベントが生成されます。If the user moves out of a window, the DragLeave event is raised.

  • マウスが別の項目を入力した場合、DragEnterのそのコントロールが発生します。If the mouse enters another item, the DragEnter for that control is raised.

  • マウスが移動しても、同じ項目内にとどめる場合、DragOverイベントが発生します。If the mouse moves but stays within the same item, the DragOver event is raised.

キーボードまたはマウス ボタンの状態に変更がある場合、QueryContinueDragの値に基づいて、操作をキャンセルするイベントが発生し、データをドロップして、ドラッグを継続するかどうかを決定します。 または、ActionイベントのプロパティQueryContinueDragEventArgsします。If there is a change in the keyboard or mouse button state, the QueryContinueDrag event is raised and determines whether to continue the drag, to drop the data, or to cancel the operation based on the value of the Action property of the event's QueryContinueDragEventArgs.

場合の値DragActionContinueDragOverイベントは、操作を続行して、GiveFeedback適切な視覚的なフィードバックを設定できるように新しい効果でイベントが発生します。If the value of DragAction is Continue, the DragOver event is raised to continue the operation and the GiveFeedback event is raised with the new effect so appropriate visual feedback can be set. 有効なドロップ効果の一覧については、DragDropEffects 列挙体を参照してください。For a list of valid drop effects, see the DragDropEffects enumeration.

DragOverGiveFeedbackこれにより、ドロップ先の間でマウスを移動、ユーザーが指定された最新のフィードバックでマウスの位置では、次のようにイベントがペアになっています。The DragOver and GiveFeedback events are paired so that as the mouse moves across the drop target, the user is given the most up-to-date feedback on the mouse's position, as follows:

  • 場合の値DragActionDropソース アプリケーションでは、ソース データに対して適切な操作を実行できるように、データの切り取り、移動、操作だった場合、ドロップ効果の値がソースに返されます。If the value of DragAction is Drop, the drop effect value is returned to the source, so the source application can perform the appropriate operation on the source data; for example, cut the data if the operation was a move.

  • 場合の値DragActionCancelDragLeaveイベントが発生します。If the value of DragAction is Cancel, the DragLeave event is raised.