ToolStripItem.DragEnter ToolStripItem.DragEnter ToolStripItem.DragEnter ToolStripItem.DragEnter Event

定義

この項目のクライアント領域に対し、ユーザーが項目をドラッグしたときに発生します。Occurs when the user drags an item into the client area of this item.

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

次のコード例は、 XおよびYプロパティをクライアントPointに変換する方法を示しています。The following code example shows how to convert the X and Y properties to a client Point. このコード例は、 ToolStripRendererクラスに対して提供される大規模な例の一部です。This code example is part of a larger example provided for the ToolStripRenderer class.

// 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イベントは、ドラッグアンドドロップ操作中にユーザーがマウスカーソルを項目の上にドラッグしたときに発生します。The DragEnter event is raised when the user first drags the mouse cursor over the item during a drag-and-drop operation.

次の解説では、ドラッグアンドドロップ操作に関連するイベントを発生させる方法とタイミングについて説明します。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.

注意

のプロパティYとプロパティは、クライアント座標ではなく画面座標にあります。DragEventArgs XThe X and Y properties of the DragEventArgs are in screen coordinates, not client coordinates.

イベントの処理の詳細については、「処理とイベントの発生」を参照してください。For more information about handling events, see Handling and Raising Events.

適用対象