Partager via


Objet MDIForm pour les utilisateurs de Visual Basic 6.0

Mise à jour : novembre 2007

Dans Visual Basic 6.0, un MDIForm était un formulaire d'un type particulier qui servait de conteneur à une application MDI (Multiple Document Interface). Dans Visual Basic 2008, tout formulaire dont la propriété IsMdiContainer a la valeur true peut agir en tant que conteneur MDI.

Différences conceptuelles

Formulaires enfants et formulaires MDI multiples

Dans Visual Basic 6.0, le fait de définir la propriété MDIChild d'un formulaire enfant identifie celui-ci comme un enfant du formulaire MDI ; une application MDI ne peut posséder qu'un seul formulaire MDI.

Dans Visual Basic 2008, la propriété MdiParent remplace la propriété MDIChild et identifie le formulaire MDI qui contiendra le formulaire enfant ; les applications MDI peuvent avoir plusieurs conteneurs MDI.

Propriétés BackColor et Picture

Dans Visual Basic 6.0, la couleur d'arrière-plan d'un MDIForm peut être modifiée en définissant la propriété BackColor et une image d'arrière-plan peut être affichée en définissant la propriété Picture.

Dans Visual Basic 2008, il n'est pas possible de modifier la couleur d'arrière-plan ou d'afficher une image sur un formulaire MDI. Même si vous pouvez définir les propriétés BackColor et BackgroundImage sur le formulaire, l'affectation de la valeur true à la propriété IsMdiContainer invalide ces paramètres.

Propriété AutoShowChildren

Dans Visual Basic 6.0, la propriété AutoShowChildren d'un formulaire MDI permet d'afficher automatiquement un formulaire MDI enfant dès qu'il est chargé. Les formulaires standard ne présentent pas ce comportement ; l'appel à la méthode Load permet de charger, mais n'affiche pas le formulaire.

Dans Visual Basic 2008, vous devez appeler explicitement la méthode Show pour afficher un formulaire enfant MDI.

Contrôles et graphiques sur les formulaires MDI

Dans Visual Basic 6.0, il n'est pas possible d'ajouter la plupart des contrôles à un MDIForm. Vous pouvez seulement ajouter des contrôles ancrés tels que le contrôle Menu, StatusBar ou ToolBar. De plus, les méthodes graphiques telles que Circle ou Line ne peuvent pas être utilisées sur un MDIForm.

Dans Visual Basic 2008, vous pouvez ajouter un contrôle à un formulaire MDI ; cependant, le comportement risque de ne pas être celui que vous attendez. Un contrôle sur un formulaire dont la propriété IsMdiContainer a la valeur true navigue sur tout formulaire enfant MDI. Même si vous pouvez appeler des méthodes graphiques dans l'événement Paint, les graphiques n'apparaissent pas au moment de l'exécution.

Modifications du code pour les formulaires MDI

Les exemples ci-dessous illustrent les différences entre les techniques de codage dans Visual Basic 6.0 et dans Visual Basic 2008.

Modifications du code pour afficher des formulaires enfants MDI

Le code suivant illustre comment afficher cinq instances d'un formulaire enfant MDI.

' Visual Basic 6.0
Dim F(1 To 4) As New Form1
Private Sub MDIForm_Load()
   Dim i As Integer
   Load Form1
   For i = 1 To 4
      F(i).Caption = "Form" & i + 1
      F(i).Show
   Next I
End Sub
' Visual Basic
Private Sub MDIForm1_Load(ByVal sender As System.Object, ByVal e _
As System.EventArgs) Handles MyBase.Load
  Dim i As Integer = 0
  For i = 0 To 4
      Dim F As New FormChild
      F.Text = "Form " & CStr(i + 1)
      F.Show()
  Next
End Sub

Modifications du code pour réorganiser des fenêtres enfants MDI

Le code suivant illustre comment écrire du code pour modifier la disposition des fenêtres dans une application MDI. Il suppose que vous avez créé des éléments de menu pour chaque option.

' Visual Basic 6.0
Private Sub menuCascade_Click()
   Me.Arrange vbCascade
End Sub
Private Sub menuTileHorizontally_Click()
   Me.Arrange vbHorizontal
End Sub
Private Sub menuTileVertically_Click()
   Me.Arrange vbVertical
End Sub
' Visual Basic
Private Sub CascadeToolStripMenuItem_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles CascadeToolStripMenuItem.Click

  Me.LayoutMdi(MdiLayout.Cascade)
End Sub
' Visual Basic
Private Sub TileVerticleToolStripMenuItem_Click(ByVal sender As Object, _
ByVal e As EventArgs) Handles TileVerticalToolStripMenuItem.Click

  Me.LayoutMdi(MdiLayout.TileVertical)
End Sub
' Visual Basic
Private Sub TileHorizontalToolStripMenuItem_Click(ByVal sender As Object, _
ByVal e As EventArgs) Handles TileHorizontalToolStripMenuItem.Click

  Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub

Équivalences des propriétés et des méthodes du formulaire MDI

Le tableau suivant répertorie les propriétés et méthodes de Visual Basic 6.0, ainsi que leurs équivalents dans Visual Basic 2008. Seules les propriétés et méthodes qui sont uniques à l'objet MDIForm sont répertoriées ; pour d'autres propriétés, méthodes et événements, consultez Objet Form pour les utilisateurs de Visual Basic 6.0.

Propriétés et méthodes de l'objet MDIForm

Visual Basic 6.0

Équivalent Visual Basic 2008

Propriété ActiveForm

ActiveMdiChild

Méthode Arrange

LayoutMdi

Propriété AutoShowChildren

Nouvelle implémentation. Pour plus d'informations, consultez Modification du comportement d'affichage dans un formulaire MDI.

Propriété BackColor

Nouvelle implémentation. L'arrière-plan d'un formulaire MDI est toujours celui qui est défini par défaut (Control).

Propriété Picture

Nouvelle implémentation. Les formulaires MDI dans Visual Basic 2008 ne peuvent pas afficher directement des images.

Mettre à niveau des remarques

Lors de la mise à niveau d'une application MDI de Visual Basic 6.0 vers Visual Basic 2008, tous les objets MDIForm sont mis à niveau vers des formulaires normaux et leur propriété IsMdiContainer a la valeur true.

Dans Visual Basic 2008, la propriété AutoShowChildren n'existe plus. Pour émuler le comportement de Visual Basic 6.0, une ligne de code est ajoutée lors de la mise à niveau afin que chaque formulaire enfant soit affiché si AutoShowChildren a la valeur true dans l'application d'origine.

Voir aussi

Concepts

MDI pour les utilisateurs de Visual Basic 6.0

Objet Form pour les utilisateurs de Visual Basic 6.0

Tâches des formulaires pour les utilisateurs de Visual Basic 6.0

Autres ressources

Applications d'interface multidocument (MDI, Multiple Document Interface)