Control.DragEnter イベント

定義

オブジェクトがコントロールの境界内にドラッグされると発生します。

public:
 event System::Windows::Forms::DragEventHandler ^ DragEnter;
public event System.Windows.Forms.DragEventHandler DragEnter;
public event System.Windows.Forms.DragEventHandler? DragEnter;
member this.DragEnter : System.Windows.Forms.DragEventHandler 
Public Custom Event DragEnter As DragEventHandler 

イベントの種類

DragEventHandler

次のコード例は、2 つの ListBox コントロール間のドラッグ アンド ドロップ操作を示しています。 この例では、ドラッグ アクションの DoDragDrop 開始時にメソッドを呼び出します。 ドラッグ アクションは、イベント中にマウスの位置からマウスが移動した場合 SystemInformation.DragSizeMouseDown 開始されます。 この IndexFromPoint メソッドは、イベント中にドラッグする項目のインデックスを決定するために使用されます MouseDown

この例では、ドラッグ アンド ドロップ操作にカスタム カーソルを使用する方法も示しています。 この例では、 3dwarro.cur カスタム ドラッグ カーソルと 3dwno.curドロップなしのカーソルに対して、それぞれ 2 つのカーソル ファイルと、アプリケーション ディレクトリに存在するカーソル ファイルが必要です。 このチェック ボックスがオンになっている場合は、カスタム カーソルがUseCustomCursorsCheckCheckBox使用されます。 カスタム カーソルは、イベント ハンドラーで GiveFeedback 設定されます。

キーボードの状態は、右ListBoxのイベント ハンドラーでDragOver評価され、Shift キー、Ctrl キー、Alt キー、または Ctrl + Alt キーの状態に基づいてドラッグ操作が決定されます。 ドロップが発生する ListBox 場所は、イベント中 DragOver にも決定されます。 削除するデータが a Stringでない場合は、DragEventArgs.Effectin にNoneDragDropEffects設定されます。 最後に、ドロップの状態が DropLocationLabel Label.

右側 ListBox にドロップするデータはイベント ハンドラーで DragDrop 決定され、 String 値は ListBox. ドラッグ操作がフォームの境界外に移動した場合、ドラッグ アンド ドロップ操作はイベント ハンドラーで QueryContinueDrag 取り消されます。

このコードの抜粋は、イベントの使用を DragEnter 示しています。 完全な DoDragDrop コード例については、メソッドを参照してください。

void ListDragTarget_DragEnter( Object^ /*sender*/, System::Windows::Forms::DragEventArgs^ /*e*/ )
{
   // Reset the label text.
   DropLocationLabel->Text = "None";
}
private void ListDragTarget_DragEnter(object sender, DragEventArgs e)
{
    // Reset the label text.
    DropLocationLabel.Text = "None";
}
Private Sub ListDragTarget_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles ListDragTarget.DragEnter
    ' Reset the label text.
    DropLocationLabel.Text = "None"
End Sub

注釈

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

注意

.NET Framework 2.0 より前のバージョンでは、Windows フォームに with イベントとDragDropイベントをUserControl配置し、デザイン時にUserControl何かをドラッグ アンド ドロップすると、DropDropイベントとDropEnterイベントが発生します。DragEnter ただし、ソリューションを閉じて再度開くと、 DragEnter イベントは DragDrop 再び発生しません。

ドラッグ アンド ドロップ操作関連のイベントがどのように、いつ発生するかについて次に示します。

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

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

マウス カーソルの位置、キーボードの状態、およびマウス ボタンの状態の変更が監視されます。

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

  • マウスが別のコントロールに移動した場合は、そのコントロールの DragEnter が生成されます。

  • マウスが移動しても同じコントロール内の場合は、DragOver イベントが生成されます。

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

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

    注意

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

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

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

    注意

    The X and Y properties of the DragEventArgs are in screen coordinates, not client coordinates. 次の Visual C# コード行は、プロパティをクライアント Pointに変換します。

    Point clientPoint = targetControl.PointToClient(new Point(de.X, de.Y));  
    

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

適用対象

こちらもご覧ください