Création
d'entreprise
Posez votre question Signaler

[VB] Afficher un Form [Résolu]

Radek - Dernière réponse le 24 déc. 2008 à 14:58
Hello !

J'ai un petit soucis.
Je dispose de plusieurs Form (Form1, Form2, Form3, ...) déjà programmées et fonctionnant indépendamment les unes des autres.

Dans un autre Form (FormMain), je souhaite définir un menu qui fera appelle aux autres Form pour qu'ils s'affichent dans le FormMain dans un frame déjà définie.
Est-ce possible ? Et si oui voyez-vous une solution ?

Merci pour vos réponse.
Lire la suite 

[VB] Afficher un Form »

3 réponses
Réponse
+7
moins plus
Salut,

il n'est pas nécessaire de faire tout ce code. Il suffit de définir FormMain.IsMdiContainer à True et ajouter Form1, Form2 et Form3 comme enfants. (Form1.MdiParent = FormMain)

Voilà
Ajouter un commentaire
Réponse
+4
moins plus
Bon je me réponds à moi même, car j'ai trouvé et ca pourrais interresser qq 1.

En fait normalement on ne peut pas inclure un Form dans un autre Form, car Form est un container principal. Mais pour contourner ce pb il suffit de mettre le toplevel de la form à inclure à False...

Par exemple :
Definir 3 Form : Form1, Form2 et Form3.

Ajouter un MenuStrip dans Form1 pour pouvoir afficher les Form2 ou Form3 dans Form1.
Et Ajouter les lignes suivantes dans Form1

Public Class Form1
    Dim f2 As Form2
    Dim f3 As Form3


    Private Sub Form2ToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Form2ToolStripMenuItem.Click
        If Not IsNothing(f3) Then
            f3.Hide()
        End If
        If Not IsNothing(f2) Then
            f2.Show()
        Else
            f2 = New Form2()
            f2.TopLevel = False 'LA Ligne Importante !
            Panel1.Controls.Add(f2)
            f2.Dock = DockStyle.Fill
            f2.FormBorderStyle = Windows.Forms.FormBorderStyle.None
            f2.Show()
        End If
    End Sub

    Private Sub Form3ToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Form3ToolStripMenuItem.Click
        If Not IsNothing(f2) Then
            f2.Hide()
        End If
        If Not IsNothing(f3) Then
            f3.Show()
        Else
            f3 = New Form3()
            f3.TopLevel = False 'LA Ligne Importante !
            Panel1.Controls.Add(f3)
            f3.Dock = DockStyle.Fill
            f3.FormBorderStyle = Windows.Forms.FormBorderStyle.None
            f3.Show()
        End If

    End Sub
End Class


Et voili !

Bon Week-End à tous !
Ajouter un commentaire
Réponse
-1
moins plus
salut, s'il vous plais ou je doit déclarer Panel1.
Merci d'avance
Ajouter un commentaire
Ce document intitulé « [VB] Afficher un Form » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?