ToolStripItem.DragEnter イベント

定義

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

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

イベントの種類

属性

次のコード例は、 プロパティと Y プロパティをXクライアント Pointに変換する方法を示しています。 このコード例は、ToolStripRenderer クラスのために提供されている大規模な例の一部です。

// This method defines the DragOver event behavior. 
protected override void OnDragOver(DragEventArgs dea)
{
    base.OnDragOver(dea);

    // Get the ToolStripButton control 
    // at the given mouse position.
    Point p = new Point(dea.X, dea.Y);
    ToolStripButton item = this.GetItemAt(
        this.PointToClient(p)) as ToolStripButton;

    // If the ToolStripButton control is the empty cell,
    // indicate that the move operation is valid.
    if( item == this.emptyCellButton )
    {
        // Set the drag operation to indicate a valid move.
        dea.Effect = DragDropEffects.Move;
    }
}
' This method defines the DragOver event behavior. 
Protected Overrides Sub OnDragOver(dea As DragEventArgs)
   MyBase.OnDragOver(dea)
   
   ' Get the ToolStripButton control 
   ' at the given mouse position.
   Dim p As New Point(dea.X, dea.Y)
   Dim item As ToolStripButton = CType(Me.GetItemAt(Me.PointToClient(p)), ToolStripButton)
   
   
   ' If the ToolStripButton control is the empty cell,
   ' indicate that the move operation is valid.
     If item Is Me.emptyCellButton Then
         ' Set the drag operation to indicate a valid move.
         dea.Effect = DragDropEffects.Move
     End If
 End Sub

注釈

このイベントは DragEnter 、ドラッグ アンド ドロップ操作中にユーザーが最初に項目の上にマウス カーソルをドラッグしたときに発生します。

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

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

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

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

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

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

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

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

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

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

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

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

注意

Xの プロパティと Y プロパティDragEventArgsは、クライアント座標ではなく画面座標にあります。

イベントの処理の詳細については、「処理とイベントの発生」を参照してください。

適用対象