如何将按钮从一个面板拖放到另一个面板?

Ran*_*ahi 9 c# winforms

我有一个表格中的5个面板和两个不同面板中的两个按钮,现在要求将按钮从一个面板移动到另一个面板.

请给我一个代码.

Lar*_*ech 24

为了演示,将两个面板放在一个窗体上的一个窗体和一个按钮上:

public Form1() {
  InitializeComponent();

  panel1.AllowDrop = true;
  panel2.AllowDrop = true;

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

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

  button1.MouseDown += button1_MouseDown;
}

void button1_MouseDown(object sender, MouseEventArgs e) {
  button1.DoDragDrop(button1, DragDropEffects.Move);
}

void panel_DragEnter(object sender, DragEventArgs e) {
  e.Effect = DragDropEffects.Move;
}

void panel_DragDrop(object sender, DragEventArgs e) {
  ((Button)e.Data.GetData(typeof(Button))).Parent = (Panel)sender;
}
Run Code Online (Sandbox Code Playgroud)