MDI-Anwendung
Multiple Document Interface (MDI) ...
Multiple Document Interface (MDI)

Die Methode, um Bilder anzuzeigen, betrachten Sie bitte genauer: Der Benutzer soll über die Funktion Bild anzeigen nacheinander seine Fotos in separaten Fenstern anzeigen lassen. Allerdings sollen die Fenster vom Programm selbst verwaltet werden. Dieses Konzept der grafischen Benutzeroberfläche bezeichnet man als Multiple Document Interface, kurz MDI. Eine MDI-Anwendung zeichnet sich dadurch aus, dass sie mehrere Kind-Fenster verwaltet.
Diese verhalten sich zum Anwendungsfenster praktisch so, wie sich das Anwendungsfenster zum Desktop verhält. Der Benutzer kann die untergeordneten Fenster innerhalb des Anwendungsfensters nach Belieben anordnen, sie ragen aber nicht über dessen Rand hinaus. Er kann ein Fenster per Mausklick in den Vordergrund holen oder alternativ mit der Tastenkombination [Strg-Tab] zwischen den Fenstern wechseln.
Der Standard und das Gegenstück zur MDI-Oberfläche ist das Single Document Interface (SDI). Hier erhält jedes Dokument ein eigenes Hauptfenster, das sich dann auch in der Taskleiste bemerkbar macht. Die Programmierung einer MDI-Oberfläche mit Visual Basic ist nicht weiter schwer. Sie machen Ihr Hauptformular zum Eltern-Fenster, indem Sie die IsMdiContainer-Eigenschaft auf True setzen.
Auf die aktuelle Fenster-Instanz greifen Sie dabei mit Me zu: Me.IsMdiContainer = True. Sie brauchen diese Anweisung nicht einmal zu codieren, sondern setzen den entsprechenden Wert im Eigenschaftenfenster. Um ein Fenster zum Kind-Fenster zu machen, weisen Sie der Eigenschaft MdiParent die Instanz des Elternfensters zu.
Mit der Eigenschaft IsMdiChild fragen Sie im Code ab, ob ein Fenster ein untergeordnetes MDI-Formular ist. Diese Eigenschaft lässt sich jedoch nur lesen, nicht setzen. Hier der Code der Ereignismethode für die Funktion Bild anzeigen:
Dim OFD As New OpenFileDialog
OFD.InitialDirectory = My.
Computer.FileSystem.SpecialDirectories.MyPictures
OFD.Filter = "Bilddateien
(*.jpg, *.gif, *.bmp, *.png)|*.jpg;*.gif;*.bmp;*.png|Alle Dateien (*.*)|*.*"
If (OFD.ShowDialog() = Windows.
Forms.DialogResult.OK) Then
Dim f As New Form
f.MdiParent = Me
f.BackgroundImage = Image.
FromFile(OFD.FileName)
f.Size = New Size(150, 150)
f.Show()
End If
Durch Aufruf der Methode ShowDialog() der OpenFileDialog-Instanz öffnen Sie den Windows-Dialog zum Auswählen einer Datei. Mit der Eigenschaft InitialDirectory legen Sie das voreingestellte Verzeichnis fest - hier den Bilderordner - und mit der Eigenschaft Filter die anzuzeigenden Datentypen. Für die Bildanzeige instanzieren Sie ein Form-Objekt (Dim f As New Form) und machen es zum MDI-Kindfenster (f.MdiParent = Me).
Namen und Pfad des anzuzeigenden Bildes erhalten Sie über die Eigenschaft FileName des OpenFileDialog-Objekts. Schließlich bringen Sie das Formular mit der Show()-Methode zur Anzeige. Das Ergebnis sehen Sie in der nebenstehenden Abbildung MDI-Benutzeroberfläche.
Standardeinträge einfügen
Wenn Sie für ein Programm mehrere geläufige Menüpunkte wie Datei, Bearbeiten, etc. benötigen, machen Sie es sich sogar noch einfacher. Klicken Sie im Formular auf eine freie Stelle des MenuStrip und öffnen Sie über das kleine Smarttag dessen Aufgabenliste. Verwenden Sie den Befehl Standardeinträge einfügen.
Visual Studio fügt daraufhin eine Reihe von Menüpunkten ein. Der gleiche Befehl steht auch im Kontextmenü des MenuStrip-Elements im Komponentenfach zur Verfügung. Menüeinträge, die Sie nicht brauchen, löschen Sie einfach.
ToolStripContainer
Damit Ihre Programm-Benutzer eine Menü- oder eine Symbolleiste auch verschieben können, müssen Sie diese kunstgerecht in einen so genannten ToolStripContainer einbetten. Dazu wählen Sie in der Aufgabenliste den entsprechenden Befehl aus. Davon sei hier allerdings besser abgeraten, weil das recht sperrige ToolStripContainer-Steuerelement sich beim Entwurf als sehr unhandlich erweist.