Allo,
Après plusieurs tentatives infructueuses dans mon code. Je tente ma chance sur le forum.
Résumé de la situation. Dans un formulaire, j'ai un TabControl avec 2 TabPages. Je veux pouvoir déplacer un table page dans un nouveau formulaire grâce au bouton de droite de la souris. Ce que je fais sans problème. Lorsque je ferme le formulaire créé précédemment. je veux que son contenu donc son tabPages s'ajoute au Tabcontrol du premier formulaire. Ce que je fais aussi sans problème.
La ou cela se gâte, c'est lorsque je veux faire le même déplacement décrit précédemment pour une 2e fois. Quand j'ai fermé mon formulaire la 1ere fois, les variables ont naturellement être détruite mais j'ai pu recopié le contenu dans le tabcontrol. J'ai tenté de les déclarer par with events cela a fonctionné mais je ne réussis a recopié le contenu maintenant.
Dans cette exemple, le problème se situe au niveau de la procédure fe_formclosed à la ligne Me.TabMain.TabPages.Add(Me.tc.SelectedTab).
Merci de votre support.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Public Class Form1 ' WithEvents fe As New Form ' WithEvents tc As New Windows.Forms.TabControl Private Sub fe_Formclosed(ByVal sender As Object, ByVal e As System.EventArgs) Dim myTabPage As New TabPage() myTabPage.Text = "TabPage" Me.TabMain.TabPages.Add(Me.tc.SelectedTab) End Sub Private Sub main() Me.Show() End Sub Private Sub TabMain_MouseMove(sender As Object, e As MouseEventArgs) Handles TabMain.MouseMove If (e.Button = MouseButtons.Right) Then TabMain.DoDragDrop(TabMain.SelectedTab, DragDropEffects.Move) End If End Sub Private Sub TabMain_GiveFeedback(sender As Object, e As GiveFeedbackEventArgs) Handles TabMain.GiveFeedback e.UseDefaultCursors = False End Sub Public Sub TabMain_QueryContinueDrag(sender As Object, e As QueryContinueDragEventArgs) Handles TabMain.QueryContinueDrag If Control.MouseButtons <> MouseButtons.Right Then e.Action = DragAction.Cancel Dim fe As New Form Dim tc As New Windows.Forms.TabControl tc.Dock = DockStyle.Fill AddHandler fe.FormClosed, AddressOf fe_Formclosed fe.Size = New Size(400, 300) fe.StartPosition = FormStartPosition.Manual fe.Location = MousePosition tc.TabPages.Add(TabMain.SelectedTab) fe.Icon = Me.Icon fe.Controls.Add(tc) fe.Show() Me.Cursor = Cursors.Default Else e.Action = DragAction.Continue Me.Cursor = Cursors.Help End If End Sub End Class
Partager