У меня есть два TabControls, и я реализовал возможность перетаскивания вкладок между двумя элементами управления.Он прекрасно работает, пока вы не перетащите последнюю вкладку с одного из элементов управления.Затем элемент управления прекращает прием капель, и я не могу вернуть вкладки на этот элемент управления.
Код перетаскивания для одного направления приведен ниже.Обратное направление совпадает с замененными именами элементов управления.
// Source TabControl
private void tabControl1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
this.tabControl1.DoDragDrop(this.tabControl1.SelectedTab, DragDropEffects.All);
}
//Target TabControl
private void tabControl2_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(TabPage)))
e.Effect = DragDropEffects.Move;
else
e.Effect = DragDropEffects.None;
}
private void tabControl2_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
TabPage DropTab = (TabPage)(e.Data.GetData(typeof(TabPage)));
if (tabControl2.SelectedTab != DropTab)
this.tabControl2.TabPages.Add (DropTab);
}