pseudoOM
Messages postés173Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention30 janvier 2009
-
18 mars 2008 à 12:05
saidanilobna
Messages postés2Date d'inscriptionvendredi 6 avril 2012StatutMembreDernière intervention25 avril 2012
-
25 avril 2012 à 18:06
Bonjour à tous chers développeurs,
Voici ma question : est-il possible d'ouvrir un formulaire dans un des panneaux d'un SplitContainer ?
Mon idée est celle-ci : j'ai donc un splitContainer avec 2 panneaux. Dans celui de gauche il y a un menu sous forme de treeview que j'alimente via une DB. Pour certain noeuds de cet arbre il y a un formulaire associé (simplement son nom dans la DB que je récupère dans le tag du noeud). En cliquant sur le noeud j'aimerais donc que le formulaire associé s'ouvre dans le panneau de droite.
Si c'est possible, comment puis-je procéder ?
Merci pour vos éventuelles réponses !
pseudoOM
Le partage est une force alors n'hésitez pas à cliquer sur réponse acceptée pour partager les solutions trouvées !
pseudoOM
Messages postés173Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention30 janvier 20091 18 mars 2008 à 16:15
En cherchant avec un collègue nous avons trouvé la solution :
Nous reprenons le nom du formulaire dans la db.
Puis nous le chargeons de cette manière avec une petite fonction :
Dim frm As Form = RecupForm(strForm)
If Not frm Is Nothing Then
frm.MdiParent = Me
frm.Height = SplitContainer1.Panel2.Height
frm.Width = SplitContainer1.Panel2.Width
frm.Top = SplitContainer1.Panel2.Top
frm.Left = SplitContainer1.Panel2.Left
SplitContainer1.Panel2.Controls.Add(frm)
frm.Dock = DockStyle.Fill
frm.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedSingle
frm.Show()
SplitContainer1.Panel2.Refresh()
frm.Refresh()
End If
Voici la fonction qui nous permet de retouver le formulaire :
Private Function RecupForm(ByVal strNomForm As String) As Form
Dim asbForm As Reflection.Assembly = System.Reflection.Assembly.GetAssembly(Me.GetType)
For Each typAss As Type In asbForm.GetTypes
If GetType(Form).IsAssignableFrom(typAss) Then
Dim frmMenuBis As Form = CType(Activator.CreateInstance(typAss), Form)
If frmMenuBis.Name = strNomForm.ToString Then
Return frmMenuBis
Exit Function
End If
End If
Next
Return Nothing
End Function
Voilà si ça peut aider quelqu'un !!!
pseudoOM
Le partage est une force alors n'hésitez pas à cliquer sur réponse acceptée pour partager les solutions trouvées !