この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

QueryContinueDragEventHandler デリゲート

 

公開日: 2016年10月

QueryContinueDragControl イベントを処理するメソッドを表します。

名前空間:   System.Windows.Forms
アセンブリ:  System.Windows.Forms (System.Windows.Forms.dll 内)

public delegate void QueryContinueDragEventHandler(
	object sender,
	QueryContinueDragEventArgs e
)

パラメーター

sender
Type: System.Object

イベントのソース。

e
Type: System.Windows.Forms.QueryContinueDragEventArgs

イベント データを格納している QueryContinueDragEventArgs

QueryContinueDragEventHandler デリゲートを作成する場合は、イベントを処理するメソッドを指定します。 イベントをイベント ハンドラーに関連付けるには、デリゲートのインスタンスをイベントに追加します。 デリゲートを削除しない限り、そのイベントが発生すると常にイベント ハンドラーが呼び出されます。 デリゲートとイベントを処理の詳細については、次を参照してください。 イベントの処理と発生します。

次の例では、2 つのドラッグ アンド ドロップ操作 ListBox コントロールです。 呼び出しの例、 DoDragDrop メソッド、ドラッグ操作の開始時にします。 マウスが移動した場合に、ドラッグ操作が開始以上 SystemInformation.DragSize 中にマウスの位置から、 MouseDown イベントです。 IndexFromPoint メソッドを使用中にドラッグする項目のインデックスを確認して、 MouseDown イベントです。

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

キーボードの状態を評価、 DragOver 右側のイベント ハンドラー ListBox, ドラッグ操作を決定するには、shift キーを押し、CTRL、alt キーを押し、または CTRL + ALT キーの状態に基づいています。 内の場所、 ListBox 時にも決定されますが、ドロップが発生する可能性、 DragOver イベントです。 削除するデータがない場合、 String, 、 DragEventArgs.Effect に設定されている DragDropEffects.Noneします。 削除の状態を表示する最後に、 DropLocationLabelLabelします。

右側にドロップするデータ ListBox で決定、 DragDrop イベント ハンドラーと String の適切な場所にある値を追加、 ListBoxです。 ドラッグ操作が、フォームの境界の外側に移動しでドラッグ アンド ドロップ操作を取り消したかどうか、 QueryContinueDrag イベント ハンドラーです。

このコードの抜粋では、使用方法を示します、 QueryContinueDragEventHandler を持つデリゲート、 QueryContinueDrag イベントです。 参照してください、 DoDragDrop 完全なコード例のメソッドです。

private void ListDragSource_QueryContinueDrag(object sender, System.Windows.Forms.QueryContinueDragEventArgs e) {
    // Cancel the drag if the mouse moves off the form.
    ListBox lb = sender as ListBox;

    if (lb != null) {

        Form f = lb.FindForm();

        // Cancel the drag if the mouse moves off the form. The screenOffset
        // takes into account any desktop bands that may be at the top or left
        // side of the screen.
        if (((Control.MousePosition.X - screenOffset.X) < f.DesktopBounds.Left) ||
            ((Control.MousePosition.X - screenOffset.X) > f.DesktopBounds.Right) ||
            ((Control.MousePosition.Y - screenOffset.Y) < f.DesktopBounds.Top) ||
            ((Control.MousePosition.Y - screenOffset.Y) > f.DesktopBounds.Bottom)) {

            e.Action = DragAction.Cancel;
        }
    }
}

.NET Framework
1.1 以降で使用可能
トップに戻る
表示: