[VB] Afficher un Form

Résolu
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. 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
    1. 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
      1. salut, s'il vous plais ou je doit déclarer Panel1.
        Merci d'avance
        0