7.7 Standard-Dialogfelder 

Es gibt fünf Klassen für Standard-Dialogfelder, mit deren Hilfe Sie alltägliche Aufgaben schnell lösen können: OpenFileDialog, SaveFileDialog, FolderBrowserDialog, ColorDialog und FontDialog.
ShowDialog()
Sie haben einige Gemeinsamkeiten, zum Beispiel die Methode ShowDialog() zur Anzeige des Dialogs und den Rückgabewert, ein Element der Enumeration DialogResult. Es existieren aber auch Unterschiede aufgrund der Art des Dialogs bzw. des ermittelten Dialogergebnisses.
7.7.1 Datei öffnen 

OpenFileDialog
Ein Objekt der Klasse OpenFileDialog dient der Auswahl einer Datei, die geöffnet werden soll. Vor dem Öffnen des Dialogfelds können Sie unter anderem folgende Einstellungen wählen:
- InitialDirectory: Verzeichnis, mit dem das Dialogfeld startet
Filter
- Filter: verschiedene Gruppen von Dateiendungen, nach denen die Anzeige gefiltert wird
- Title: Titelzeile des Dialogfelds
FileName
Das Dialog-Ergebnis (nicht der Rückgabewert) ist ein Dateiname. Dieser wird in der Eigenschaft FileName zur Verfügung gestellt.
Ein Beispiel (im Projekt StandardDialogfelder), bei dem zunächst nur nach Dateien mit der Endung xls gesucht wird, sehen Sie in Abbildung 7.26 und Abbildung 7.27.
Abbildung 7.26 Ausgewählte Dateien
Abbildung 7.27 Aktuell eingestellter Dateityp für die Auswahl
Der zugehörige Code:
Private Sub cmdOpenFileDialog_Click(...) Handles ... Dim ofd As New OpenFileDialog ofd.InitialDirectory = "C:\Temp" ofd.Filter = "Tabellen (*.xls)|*.xls|" & " Texte (*.txt; *doc)|*.txt;*.doc|" & " Alle Dateien (*.*)|*.*" ofd.Title = "Datei zum Öffnen auswählen" If ofd.ShowDialog() = DialogResult.OK Then MessageBox.Show("Öffnen: " & ofd.FileName) Else MessageBox.Show("Abbruch") End If End Sub
Listing 7.17 Projekt »StandardDialogfelder«, Datei öffnen
Zur Erläuterung:
- Das Objekt ofd der Klasse OpenFileDialog wird erzeugt.
- Die Eigenschaft InitialDirectory wird (mit einer Zeichenkette) auf ein bestimmtes Verzeichnis eingestellt.
- Die Eigenschaft Filter bekommt eine Zeichenkette zugewiesen. Diese beinhaltet verschiedene Gruppen von Datei-Endungen und deren Erklärung.
- Die verschiedenen Gruppen sind durch das Pipe-Zeichen (|) voneinander getrennt.
- Eine Gruppe besteht aus: Erklärung (*.Endung) | *.Endung
- Besteht eine Gruppe aus mehreren Datei-Endungen (hier z. B. die Gruppe Texte), so werden die Endungen durch Semikolon voneinander getrennt.
- Die Eigenschaft Title bekommt ebenfalls eine Zeichenkette zugewiesen.
DialogResult.Ok
- Die Methode ShowDialog() zeigt den Dialog an. Es ist wichtig, dass Sie ermitteln, welchen Button der Benutzer gedrückt hat. Deshalb wird der Rückgabewert der Methode ausgewertet. Falls dieser dem Wert von DialogResult.Ok entspricht, hat der Benutzer den Button Ok betätigt.
- In der Eigenschaft FileName steht im Erfolgsfall der ausgewählte Dateiname.
- Falls eine Datei eingegeben wurde, die nicht existiert, dann erscheint eine Fehlermeldung, siehe Abbildung 7.28.
- Falls der Button Abbrechen betätigt wurde, wird dies ebenfalls bemerkt. Das Programm kann anschließend passend reagieren.
- Ein weiteres Beispiel zur Klasse OpenFileDialog sehen Sie in Abschnitt 10.4.
Abbildung 7.28 Fehlermeldung, falls Datei nicht vorhanden
7.7.2 Datei speichern unter 

SaveFileDialog
Ein Objekt der Klasse SaveFileDialog dient der Eingabe oder Auswahl einer Datei, die zum Speichern verwendet werden soll. Wählbare Einstellungen und Dialog-Ergebnis entsprechen im Wesentlichen denen der Klasse OpenFileDialog. Ein Beispiel (ebenfalls im Projekt StandardDialogfelder) sehen Sie in Abbildung 7.29.
Abbildung 7.29 Auswahl zum Speichern der Datei
Der Programmcode:
Private Sub cmdSaveFileDialog_Click(...) Handles ... Dim sfd As New SaveFileDialog sfd.InitialDirectory = "C:\Temp" sfd.Filter = "Tabellen (*.xls)|*.xls|" & " Texte (*.txt; *doc)|*.txt;*.doc|" & " Alle Dateien (*.*)|*.*" sfd.Title = "Datei zum Speichern auswählen" If sfd.ShowDialog() = DialogResult.OK Then MessageBox.Show( "Speichern unter: " & sfd.FileName) Else MessageBox.Show("Abbruch") End If End Sub
Listing 7.18 Projekt »StandardDialogfelder«, Datei speichern unter
Zur Erläuterung:
- Das Objekt sfd der Klasse SaveFileDialog wird erzeugt.
- Wählt der Benutzer eine Datei zum Speichern aus, die es bereits gibt, so wird er gefragt, ob er diese überschreiben möchte, siehe Abbildung 7.30.
FileName
- In der Eigenschaft FileName steht im Erfolgsfall der ausgewählte Dateiname.
Abbildung 7.30 Rückfrage, falls Datei bereits vorhanden
7.7.3 Verzeichnis auswählen 

FolderBrowserDialog
Ein Objekt der Klasse FolderBrowserDialog dient der Auswahl eines Verzeichnisses, das als Basis für weitere Programmabläufe dienen soll. Es kann auch ein neues Verzeichnis erzeugt werden. Vor dem Öffnen des Dialogfelds können Sie u. a. folgende Einstellungen wählen:
- RootFolder: oberstes Verzeichnis, das im Dialogfeld angezeigt wird
- ShowNewFolderButton: Anzeige eines Buttons, der die Erzeugung eines neuen Verzeichnisses ermöglicht
- Description: Titelzeile des Dialogfelds
SelectedPath
Das Dialog-Ergebnis ist ein Verzeichnisname. Dieser wird in der Eigenschaft SelectedPath zur Verfügung gestellt. Ein Beispiel ist in Abbildung 7.31 zu sehen.
Abbildung 7.31 Auswahl eines Verzeichnisses
Der zugehörige Code:
Private Sub cmdFolderBrowserDialog_Click(...) Handles ... Dim fbd As New FolderBrowserDialog fbd.RootFolder = Environment.SpecialFolder.Desktop fbd.ShowNewFolderButton = False fbd.Description = "Verzeichnis auswählen" If fbd.ShowDialog() = DialogResult.OK Then MessageBox.Show("Zugriff auf " & "Verzeichnis: " & fbd.SelectedPath) Else MessageBox.Show("Abbruch") End If End Sub
Listing 7.19 Projekt »StandardDialogfelder«, Verzeichnis wählen
Zur Erläuterung:
- Das Objekt fbd der Klasse FolderBrowserDialog wird erzeugt.
- Als oberstes Verzeichnis des Dialogfelds dient ein Element der Enumeration SpecialFolder der Klasse Environment, hier ist dies der Desktop.
- Die Eigenschaft ShowNewFolderButton steht normalerweise auf True. Mit dem Wert False wird verhindert, dass ein neues Verzeichnis erzeugt werden kann.
- In der Eigenschaft SelectedPath steht im Erfolgsfall der ausgewählte Verzeichnisname.
7.7.4 Farbe auswählen 

ColorDialog
Ein Objekt der Klasse ColorDialog dient der Auswahl einer Farbe, die z. B. einem Steuerelement zugewiesen werden soll.
Color
Das Dialog-Ergebnis ist ein Objekt der Struktur Color; es wird in der Eigenschaft Color zur Verfügung gestellt.
Ein Beispiel sehen Sie in Abbildung 7.32.
Private Sub cmdColorDialog_Click(...) Handles ... Dim cd As New ColorDialog If cd.ShowDialog() = DialogResult.OK Then lblA.ForeColor = cd.Color Else MessageBox.Show("Abbruch") End If End Sub
Listing 7.20 Projekt »StandardDialogfelder«, Farbe wählen
Abbildung 7.32 Auswahl einer Farbe
Zur Erläuterung:
- Das Objekt cd der Klasse ColorDialog wird erzeugt.
- In der Eigenschaft Color steht im Erfolgsfall die ausgewählte Farbe. Diese wird hier als Schriftfarbe für das Label übernommen.
7.7.5 Schrifteigenschaften auswählen 

FontDialog
Ein Objekt der Klasse FontDialog dient der Auswahl von Schrifteigenschaften, die z. B. einem Steuerelement zugewiesen werden sollen. Dialog-Ergebnisse sind:
Font
- Ein Objekt der Klasse Font, das in der Eigenschaft Font zur Verfügung gestellt wird.
- Ein Objekt der Struktur Color, das in der Eigenschaft Color zur Verfügung gestellt wird.
Vor dem Öffnen des Dialogfelds können Sie unter anderem folgende Einstellungen wählen:
- ShowColor: Legt fest, ob auch die Farbe der Schrift bzw. der Unterstreichung einstellbar sein sollen.
- MaxSize und MinSize: Stellt die größte und die kleinste wählbare Schriftgröße ein.
Ein Beispiel, in Abbildung 7.33.
Private Sub cmdFontDialog_Click(...) Handles ... Dim fd As New FontDialog fd.ShowColor = True fd.MinSize = 8 fd.MaxSize = 20 If fd.ShowDialog() = DialogResult.OK Then lblA.Font = fd.Font lblA.ForeColor = fd.Color Else MessageBox.Show("Abbruch") End If End Sub
Listing 7.21 Projekt »StandardDialogfelder«, Schrifteigenschaften wählen
Abbildung 7.33 Auswahl von Schrifteigenschaften
Zur Erläuterung:
- Das Objekt fd der Klasse FontDialog wird erzeugt.
- Die Eigenschaft ShowColor wird auf True gestellt, es können also auch die Farbe der Schrift bzw. die Farbe der Unterstreichung eingestellt werden.
- Die wählbare Schriftgröße wird begrenzt auf den Bereich von 8 bis 20.
- In den Eigenschaften Font und Color stehen im Erfolgsfall die ausgewählten Schrifteigenschaften und die Farbe. Diese werden hier als Schrifteigenschaften für das Label übernommen, siehe Abbildung 7.34.
Abbildung 7.34 Übernommene Schrifteigenschaften