0
在下面的代碼(由LarsTech - drag and detach tabpages )的幫助下,我能夠分離一個tabpage並將其放置到一個新的表單。但是,當我關閉該表單時,拖動的tabpage不會返回到其原始位置。 如果有人能幫助我編程,那就太棒了!VB.NET - 選項卡控制 - 拖動和分離標籤
Private Sub TabControl1_MouseMove(sender As Object, e As MouseEventArgs) Handles TabControl1.MouseMove
If (e.Button = MouseButtons.Left) Then
TabControl1.DoDragDrop(TabControl1.SelectedTab, DragDropEffects.Move)
End If
End Sub
Private Sub TabControl1_GiveFeedback(sender As Object, e As GiveFeedbackEventArgs) Handles TabControl1.GiveFeedback
e.UseDefaultCursors = False
End Sub
Private Sub TabControl1_QueryContinueDrag(sender As Object, e As QueryContinueDragEventArgs) Handles TabControl1.QueryContinueDrag
If Control.MouseButtons <> MouseButtons.Left Then
e.Action = DragAction.Cancel
Dim f As New Form
f.Size = New Size(400, 300)
f.StartPosition = FormStartPosition.Manual
f.Location = MousePosition
Dim tc As New TabControl
tc.Dock = DockStyle.Fill
tc.TabPages.Add(TabControl1.SelectedTab)
f.Controls.Add(tc)
f.Show()
Me.Cursor = Cursors.Default
Else
e.Action = DragAction.Continue
Me.Cursor = Cursors.Help
End If
End Sub
你爲什麼期望它這樣做?如果你期望發生這種情況,那麼你必須編寫代碼來做到這一點。你已經有了移動一個'TabPage'的代碼,所以你可以適應它,但是你還必須記住它來自哪裏,以便之後你可以把它放回去。 – jmcilhinney
對不起,我想我沒有說清楚。我知道該代碼並不假設將Tabpage返回到其原始位置。我無法生成可以完成這項任務的代碼,這就是我需要幫助的。 – SinghSolutions
正如我所說,你已經知道如何將「TabPage」從一個地方移動到另一個地方,因爲你已經在做這件事了。您將有兩個選項可以將其移回。首先,您可以讓原始窗體處理第二個窗體的FormClosed事件並將「TabPage」拉回。其次,你可以讓第二種形式保留對第一種形式的「TabControl」的引用並將其推回。 – jmcilhinney