0

私は最初のドラッグ アンド ドロップ アプリケーションを実行しています。Visual Studio とまったく同じように、ラベル、ボタン、およびその他のコンポーネントを見つけることができるツールボックスがあります。真ん中にパネルがあります。ユーザーにボタンをパネルにドラッグアンドドロップしてもらいたい。私はいくつかのコードを書きましたが、ドラッグアンドドロップのトリックを行いません。

ここにスクリーンショットがありますここに画像の説明を入力

ここにドラッグ&ドロップを処理するはずの私のコードがあります

private void listBox1_MouseDown(object sender, MouseEventArgs e)
    {
        ListBox box = (ListBox)sender;
        String selectedValue = box.Text;
        DoDragDrop(selectedValue.ToString(), DragDropEffects.Copy);
    }

    private void pnl_form_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.Text))
        {
            e.Effect = DragDropEffects.Copy;
        }
        else
        {
            e.Effect = DragDropEffects.None;
        }
    }

    private void pnl_form_DragDrop(object sender, DragEventArgs e)
    {
        Label newLabel = new Label();
        newLabel.Name = "testLabel";
        newLabel.Text = e.Data.GetData(DataFormats.Text).ToString();

        newLabel.AutoSize = true;

        newLabel.Parent = pnl_form;
    }

私は何か間違ったことをしていますか?

4

1 に答える 1

1

AllowDrop = true何かをドロップしたいコントロールを設定することを忘れないでください。

private void listBox1_MouseDown(object sender, MouseEventArgs e)
{        
    String selectedValue = (listBox1.SelectedItem ?? "NULL").ToString();
    DoDragDrop(selectedValue, DragDropEffects.Copy);
}
于 2013-08-01T09:39:51.270 に答える