При перетаскивании хочу скопировать панели, не перемещая их
Я хочу перетащить панели из одной таблицы LayoutPanel в другую. Я также хочу, чтобы панели копировались, а не перемещались; то есть я хочу, чтобы они были скопированы (из tableLayoutPanel1 в tableLayoutPanel2), оставляя элемент в tableLayoutPanel1. Я могу это сделать? Если вы можете дать мне идею, это будет здорово. Спасибо
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)
{
}
}
}
1 ответ
Вам необходимо создать новую панель в обработчике MouseDown, установить ее свойства, аналогичные свойствам оригинала, добавить ее в форму и использовать DoDragDrop с этой новой панелью.