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.

public:
 event System::Windows::Forms::QueryContinueDragEventHandler ^ QueryContinueDrag;
[System.ComponentModel.Browsable(false)]
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.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.

コード例を実行するに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.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イベントは、ドラッグアンドドロップ操作中にキーボードまたはマウスボタンの状態が変化したときに発生します。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.

の値がContinueDragAction場合、 DragOverこのイベント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:

  • の値がDropDragAction場合、ドロップ効果の値がソースに返されます。そのため、ソースアプリケーションでは、ソースデータに対して適切な操作を実行できます。たとえば、操作が移動だった場合は、データを切り取ります。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.

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

適用対象