質問

これは一種の愚かな質問です...私はパネルに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;
}

その後、ドラッグドロップイベントが正しく発射されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top