Bonjour, ancien utilisateur de VB6, je me convertis actuellement vers Visual Studio 2012.
Dans le cadre de mon travail, je dois refaire complètement une application qui fonctionnait en VB6, mais ce nouveau langage me pose quelques soucis.

J'ai dans mon application un From1 avec la propriété IsMdiContainer à True avec le code ci-dessous à l'intérieur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'donne la taille de la page
        Me.Width = 1100
        Me.Height = 700
        'centre la page
        CenterToScreen()
        'affiche la page de garde, défini le parent et la taille du form
        Form2.MdiParent = Me
        Form2.Width = 1080
        Form2.Height = 634
        Form2.Show()
 End Sub
Quand je lance l'application, tout se passe bien, ma Form2 s'affiche et elle contient 2 Buttons.
Un des deux Button me sert à ouvrir un nouveau Form, le Form3 avec le code ci-dessous:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'ouvre la page Gestion des dossiers
        Form3.MdiParent = Form1
        Form3.Width = 1080
        Form3.Height = 634
        Form3.Top = 0
        Form3.Left = 0
        Form3.Show()
End Sub
Cette fois aussi, lorsque la page s'ouvre, tout se passe bien. Ce nouveau Form contient un Button "Quitter" qui me permet de fermer le Form3 et revenir sur le Form2. Cela fonctionne également.
Mon problème est lorsque je ré-ouvre mon Form3 à partir de mon Form2, tout les Button de mon Form3 sont décalés vers le haut. J'ai donc ajouté un label sur le Form3 qui me donne la position haute de ce dernier (Form3.top), sur la 1ère ouverture je suis à 0 et sur la 2ème ouverture je suis à -30.

Merci de vos réponses.