Ouvrir un Form dans un SplitContainer [Résolu]

pseudoOM 174 Messages postés jeudi 3 février 2005Date d'inscription 30 janvier 2009 Dernière intervention - 18 mars 2008 à 12:05 - Dernière réponse : saidanilobna 2 Messages postés vendredi 6 avril 2012Date d'inscription 25 avril 2012 Dernière intervention
- 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 !
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
pseudoOM 174 Messages postés jeudi 3 février 2005Date d'inscription 30 janvier 2009 Dernière intervention - 18 mars 2008 à 16:15
3
Merci
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 !

Merci pseudoOM 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de pseudoOM
saidanilobna 2 Messages postés vendredi 6 avril 2012Date d'inscription 25 avril 2012 Dernière intervention - 10 avril 2012 à 18:02
0
Merci
salut,
et comment faire pour récupérer les treeview sélectionnés ??
Commenter la réponse de saidanilobna
saidanilobna 2 Messages postés vendredi 6 avril 2012Date d'inscription 25 avril 2012 Dernière intervention - 25 avril 2012 à 18:06
0
Merci
j'ai essayé avec ce code mé ca marche pas
Commenter la réponse de saidanilobna

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.