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.
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
Ein Objekt der Klasse OpenFileDialog dient der Auswahl von einer oder mehreren Dateien, die zum Beispiel geöffnet werden sollen. Vor dem Öffnen des Dialogfelds können Sie unter anderem folgende Einstellungen wählen:
- MultiSelect: zur Auswahl mehrerer Dateien
- InitialDirectory: Verzeichnis, mit dem das Dialogfeld startet
- Filter: verschiedene Gruppen von Dateiendungen, nach denen die Anzeige gefiltert wird
- Title: Titelzeile des Dialogfelds
Die Eigenschaft FileNames beinhaltet nach erfolgreicher Auswahl die Namen der ausgewählten Dateien.
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.Multiselect = True
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
For Each s As String In ofd.FileNames
MessageBox.Show("Öffnen: " & s)
Next
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 MultiSelect wird auf den Wert True gesetzt, damit der Benutzer mehrere Dateien auswählen kann.
- 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.
- 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 FileNames stehen im Erfolgsfall die ausgewählten Dateinamen.
- 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
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.
- 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
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
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
Ein Objekt der Klasse ColorDialog dient der Auswahl einer Farbe, die z. B. einem Steuerelement zugewiesen werden soll.
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
Ein Objekt der Klasse FontDialog dient der Auswahl von Schrifteigenschaften, die z. B. einem Steuerelement zugewiesen werden sollen. Dialog-Ergebnisse sind:
- 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 stellen 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
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.