[VB] Afficher un Form

Résolu
Radek -  
 Anonyme -
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.

3 réponses

  1. Anonyme
     
    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à
    8
  2. Radek
     
    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 !
    5
  3. mamercus
     
    salut, s'il vous plais ou je doit déclarer Panel1.
    Merci d'avance
    0