MDIForm-Objekt für Visual Basic 6.0-Benutzer

Aktualisiert: November 2007

In Visual Basic 6.0 war ein MDIForm ein besonderer Formulartyp, der als Container für eine MDI-(Multiple Document Interface)-Anwendung fungierte. In Visual Basic 2008 kann jedes Formular als MDI-Container fungieren, wenn seine IsMdiContainer-Eigenschaft auf true festgelegt wird.

Konzeptionelle Unterschiede

Untergeordnete Formulare und mehrere MDI-Formulare

Wenn in Visual Basic 6.0 die MDIChild-Eigenschaft auf ein untergeordnetes Formular festgelegt wurde, wurde dieses als untergeordnetes Element des MDI-Formulars identifiziert; eine MDI-Anwendung konnte nur über ein MDI-Formular verfügen.

In Visual Basic 2008 ersetzt die MdiParent-Eigenschaft die MDIChild-Eigenschaft. Sie gibt das MDI-Formular an, das das untergeordnete Formular enthält. MDI-Anwendungen können über mehrere MDI-Container verfügen.

BackColor-Eigenschaft und Picture-Eigenschaft

In Visual Basic 6.0 kann die Hintergrundfarbe für ein MDIForm geändert werden, indem die BackColor-Eigenschaft festgelegt wird. Durch eine entsprechende Festlegung der Picture-Eigenschaft kann ein Hintergrundbild angezeigt werden.

In Visual Basic 2008 ist es nicht möglich, die Hintergrundfarbe zu ändern oder auf einem MDI-Formular ein Bild anzuzeigen. Sie können zwar die BackColor-Eigenschaft und die BackgroundImage-Eigenschaft auf dem Formular festlegen, durch die Festlegung der IsMdiContainer-Eigenschaft auf true werden diese Einstellungen jedoch außer Kraft gesetzt.

AutoShowChildren-Eigenschaft

In Visual Basic 6.0 wird die AutoShowChildren-Eigenschaft eines MDI-Formulars verwendet, um beim Laden des Formulars automatisch ein untergeordnetes MDI-Formular anzuzeigen. Standardformulare zeigen dieses Verhalten nicht; beim Aufrufen der Load-Methode wird das Formular geladen, aber nicht angezeigt.

In Visual Basic 2008 müssen Sie die Show-Methode explizit aufrufen, um ein untergeordnetes MDI-Formular anzuzeigen.

Steuerelemente und Grafiken auf MDI-Formularen

In Visual Basic 6.0 können die meisten Steuerelemente einem MDIForm nicht hinzugefügt werden. Sie können nur angedockte Steuerelemente hinzufügen, z. B. die Steuerelemente Menu, StatusBar oder ToolBar. Außerdem können Grafikmethoden, z. B. Circle oder Line, nicht auf einem MDIForm verwendet werden.

In Visual Basic 2008 kann einem MDI-Formular jedes beliebige Steuerelement hinzugefügt werden, das Verhalten entspricht jedoch möglicherweise nicht Ihren Erwartungen. Alle Steuerelemente auf einem Formular, deren IsMdiContainer-Eigenschaft auf true festgelegt ist, "schweben" über allen untergeordneten MDI-Formularen. Obwohl die Grafikmethoden des Paint-Ereignisses aufgerufen werden können, wird die Grafik zur Laufzeit nicht angezeigt.

Änderungen am Code für MDI-Formulare

Im folgenden Beispiel werden Unterschiede in den Codierungstechniken von Visual Basic 6.0 und Visual Basic 2008 dargestellt.

Änderungen am Code zum Anzeigen untergeordneter MDI-Formulare

Im folgenden Code wird veranschaulicht, wie fünf Instanzen eines untergeordneten MDI-Formulars angezeigt werden.

' 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

Änderungen am Code zum Anordnen untergeordneter MDI-Fenster

Im folgenden Code wird veranschaulicht, wie Code geschrieben wird, um die Anordnung der Fenster in einer MDI-Anwendung zu ändern. Dabei wird davon ausgegangen, dass Sie Menüelemente für jede Option erstellt haben.

' 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

Entsprechungen für MDI-Formulareigenschaften und -Methoden

In der folgenden Tabelle sind die Eigenschaften und Methoden von Visual Basic 6.0 zusammen mit ihren Entsprechungen in Visual Basic 2008 aufgeführt. Es werden nur Eigenschaft und Methoden aufgeführt, die dem MDIForm-Objekt eigen sind. Informationen zu anderen Eigenschaften, Methoden und Ereignissen finden Sie unter Form-Objekt für Visual Basic 6.0-Benutzer.

MDIForm-Eigenschaften und -Methoden

Visual Basic 6.0

Visual Basic 2008-Entsprechung

ActiveForm-Eigenschaft

ActiveMdiChild

Arrange-Methode

LayoutMdi

AutoShowChildren-Eigenschaft

Neue Implementierung. Weitere Informationen finden Sie unter Das Show-Verhalten des MDI-Formulars wurde geändert.

BackColor-Eigenschaft

Neue Implementierung. Der Hintergrund für ein MDI-Formular ist immer der Standard (Control).

Picture-Eigenschaft

Neue Implementierung. MDI-Formulare in Visual Basic 2008 können Bilder nicht direkt anzeigen.

Hinweise zum Durchführen einer Aktualisierung

Wenn eine MDI-Anwendung von Visual Basic 6.0 auf Visual Basic 2008 aktualisiert wird, werden alle MDIForm-Objekte in reguläre Formulare umgewandelt. Ihre IsMdiContainer-Eigenschaft wird auf true festgelegt.

In Visual Basic 2008 ist die AutoShowChildren-Eigenschaft nicht mehr vorhanden. Zum Emulieren des Visual Basic 6.0-Verhaltens wird beim Aktualisieren eine Codezeile eingefügt, die für jedes untergeordnete Formular angibt, ob AutoShowChildren in der Originalanwendung auf true festgelegt war.

Siehe auch

Konzepte

MDI für Visual Basic 6.0-Benutzer

Form-Objekt für Visual Basic 6.0-Benutzer

Formularaufgaben für Visual Basic 6.0-Benutzer

Weitere Ressourcen

MDI-Anwendungen (Multiple Document Interface)