0

ある tableLayoutPanel から別の tableLayoutPanel にパネルをドラッグしたい。また、パネルを移動ではなくコピーしたい。つまり、項目を tableLayoutPanel1 に残して (tableLayoutPanel1 から tableLayoutPanel2 に) コピーする必要があります。私はこれを行うことができますか?あなたが私にアイデアを与えることができれば、それは素晴らしいことです。ありがとうございました

    public Form1()
    {
        InitializeComponent();
        panel1.AllowDrop = true;
        panel2.AllowDrop = true;
        panel3.AllowDrop = true;

        panel1.DragEnter += panel_DragEnter;
        panel2.DragEnter += panel_DragEnter;

        panel1.DragDrop += panel_DragDrop;
        panel2.DragDrop += panel_DragDrop;
    }

    private void panel3_MouseDown(object sender, MouseEventArgs e)
    {
        DoDragDrop(panel3, DragDropEffects.Copy);
    }
    private void panel3_MouseMove(object sender, MouseEventArgs e)
    {
        DoDragDrop(panel3, DragDropEffects.Copy);
    }
    private void panel_DragEnter(object sender, DragEventArgs e)
    {

        e.Effect = DragDropEffects.Copy;
    }
    private void panel_DragDrop(object sender, DragEventArgs e)
    {
        ((Panel)e. Data . GetData(typeof(Panel))).Parent = (Panel)sender;
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
}

}

4

1 に答える 1

0

MouseDown ハンドラーで新しいパネルを作成し、そのプロパティを元のパネルと同じように設定し、それをフォームに追加して、この新しいパネルで DoDragDrop を使用する必要があります。

于 2013-11-12T09:10:59.643 に答える