その中Panel
にカスタムコントロールのいくつかのドラッグアンドドロップ操作があります。ドラッグが始まるとpanel.Capture = True;
、ユーザーがパネルの境界の外でマウスの左ボタンを離した場合でも、パネルが適切なイベントを発生させるようにします(例: panel_DragDrop
)が、DragDrop
イベントはありませんカーソルがパネルの境界内にあるときにマウスの左ボタンを離さない限り、起動されません。
これで解決すると思っpanel.Capture
たのですが、効果がありません。ここで何が欠けているのですか?
編集:わかりました、私は今何をしなければならないかを知っていると思います。DragDrop イベントを誤解していたと思います。私のアプリケーションで持っているのは、パネル内のコントロールのみをドラッグすることです (移動ブロックと考えてください)。ユーザーがブロックをドラッグして範囲外に出ている間、カーソルがパネルの外に出た場合、自動スクロールしますpanel_DragDrop
。が呼び出され、マウスが離された場合、ブロックの配置は行われません。私の解決策はこれだと思います:
Cursor.Clip = panelDiagram.RectangleToScreen(panelDiagram.ClientRectangle);
これにより、ドラッグ中にカーソルがパネルの境界にバインドされるため、カーソルを境界から外す方法はありません。
ご迷惑をおかけして申し訳ありません