ドラッグドロップイベントは提起されていません
-
29-09-2019 - |
質問
これは一種の愚かな質問です...私はパネルにPictureBoxをドラッグアンドドロップしようとしています。私はいくつかの例に従いましたが、それは機能しません。パネルのドラッグドロップイベントは決して上げられません。私はこのサイトを検索して解決策を検索し、1年にわたって2つのトピックを発見しましたが、それらのソリューションは機能しませんでした。このコードのみを使用して、新しいプロジェクトを作成しました。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
pictureBox1.MouseDown += new MouseEventHandler(pictureBox1_MouseDown);
panel1.DragDrop +=new DragEventHandler(panel1_DragDrop);
panel1.DragOver +=new DragEventHandler(panel1_DragOver);
}
private void panel1_DragOver(object sender, DragEventArgs e)
{
Console.WriteLine("DragOver");
}
private void panel1_DragDrop(object sender, DragEventArgs e)
{
Console.WriteLine("DragDrop");
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
Console.WriteLine("Mouse");
pictureBox1.DoDragDrop(pictureBox1.Text, DragDropEffects.All);
}
}
また、パネルの許可とフォームをtrueに設定します。ドラッグオーバーとムーズダウンが育ちます。また、PictureBoxをドラッグすると、カーソルは許可されていない操作のように、丸く丸くなります。カーソルが画像ボックスの画像になる方法はありますか? PictureBoxが移動したくないのですが、パネルにアイテムを追加するだけです。
解決
リチャード、問題は、ドラッグアンドドロップがここでコーディングしたほど単純な操作ではないということです。ここでは、コードから始まるはずのドラッグムーブメントを開始しておらず、こちらの詳細を読むことができます... http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dodragdrop(v=vs.90).aspx
PictureBoxを移動したい場合は... ランタイムのWinform内にPictureBoxをドラッグします
そして最後に 同じWindowsフォームアプリケーションのインスタンス間のドラッグアンドドロップ
お役に立てれば。
他のヒント
問題は簡単に解決できます。
Dragenterに適切な効果を設定する必要があります。
private void Form1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.All;
}
その後、ドラッグドロップイベントが正しく発射されます。