ToolStripItem.DragOver イベント

定義

この項目のクライアント領域上に、ユーザーが項目をドラッグしたときに発生します。

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

イベントの種類

属性

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

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

private void ToolStripItem1_DragOver(Object sender, DragEventArgs e) {

System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "Data", e.Data );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "KeyState", e.KeyState );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "X", e.X );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Y", e.Y );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "AllowedEffect", e.AllowedEffect );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Effect", e.Effect );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "DragOver Event" );
}
Private Sub ToolStripItem1_DragOver(sender as Object, e as DragEventArgs) _ 
     Handles ToolStripItem1.DragOver

    Dim messageBoxVB as New System.Text.StringBuilder()
    messageBoxVB.AppendFormat("{0} = {1}", "Data", e.Data)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "KeyState", e.KeyState)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "X", e.X)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "Y", e.Y)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "AllowedEffect", e.AllowedEffect)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "Effect", e.Effect)
    messageBoxVB.AppendLine()
    MessageBox.Show(messageBoxVB.ToString(),"DragOver Event")

End Sub

注釈

このイベントは DragOver 、ドラッグ アンド ドロップ操作中にマウス カーソルがコントロールの境界内を移動したときに発生します。

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

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

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

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

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

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

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

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

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

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

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

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

適用対象