C# でドラッグ アンド ドロップ イベントを処理するのは初めてで、問題に直面しました。
ボタンとパネルを含むフォームを持つ WinForms プロジェクトがあります。パネルの AllowDrop プロパティを true に設定し、DragDrop イベントのハンドラーを追加しました。
panel1.DragDrop += new DragEventHandler(panel1_DragDrop);
ボタンの場合、DragDropEffects を初期化する MouseDown イベント ハンドラーを追加しました。
void btn1_MouseDown(object sender, MouseEventArgs e)
{
(sender as Button).BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
DragDropEffects dde1 = DoDragDrop((sender as Button), DragDropEffects.All);
}
Panel によって発生した DragDrop イベントに問題はありません。
私の質問は、AllowDrop プロパティが true に設定されている領域の外にユーザーがアイテムをドロップするイベントをどのように処理できますか? ドラッグ中にユーザーがパネルの外でマウスボタンを離したときに、Buttons BorderStyle を FixedSingle に設定し直したいとします。どのイベントを処理する必要がありますか?