Das Standarddialog-Steuerelement (CommonDialog) stellt eine Reihe von Standarddialogfeldern für Vorgänge wie beispielsweise das Öffnen und Speichern von Dateien, das Einstellen von Druckoptionen und das Auswählen von Farben und Schriftarten zur Verfügung. Mit diesem Steuerelement kann auch die Hilfe angezeigt werden, indem das Hilfemodul von Windows ausgeführt wird.
Abbildung: Das Standarddialog-Steuerelement
Das Standarddialog-Steuerelement stellt eine Schnittstelle zwischen Visual Basic und den Routinen in der Microsoft Windows-DLL (Dynamic-Link Library) Commdlg.dll bereit. Zum Erstellen eines Dialogfelds, das dieses Steuerelement verwendet, muss sich Commdlg.dll im Verzeichnis \System von Microsoft Windows befinden.
Mit dem Standarddialog-Steuerelement können Sie die folgenden, häufig verwendeten Dialogfelder anzeigen:
Öffnen | Speichern unter |
Farbe |
Schrift |
1 Sofern das Steuerelement nicht bereits hinzugefügt wurde, nehmen Sie das Standarddialog-Steuerelement in die Werkzeugsammlung auf, indem Sie im Menü Projekt auf Komponenten klicken. Wählen Sie das Steuerelement auf der Registerkarte Steuerelemente, und klicken Sie auf OK.
2 Klicken Sie in der Werkzeugsammlung auf das Standarddialog-Steuerelement (CommonDialog), und zeichnen Sie es in einem Formular.
Wenn Sie ein Standarddialog-Steuerelement in einem Formular zeichnen, passt es automatisch seine Größe an. Genau wie das Zeitgeber-Steuerelement (Timer) ist das Standarddialog-Steuerelement zur Laufzeit nicht sichtbar.
3 Zur Laufzeit verwenden Sie die entsprechende Methode (wie in der folgenden Tabelle aufgeführt), um das gewünschte Dialogfeld anzuzeigen.
Methode |
Angezeigtes Dialogfeld |
ShowOpen |
Öffnen |
ShowSave |
Speichern |
ShowColor |
Farbe |
ShowFont |
Schrift |
ShowPrinter |
|
ShowHelp |
Ruft Windows-Hilfe auf |
Das Dialogfeld Öffnen ermöglicht dem Benutzer das Angeben eines Laufwerks, eines Verzeichnisses, einer Dateinamenerweiterung und eines Dateinamens.
Abbildung: Dialogfeld "Öffnen"
Das Dialogfeld Speichern unter sieht aus wie das Dialogfeld Öffnen, mit dem Unterschied, dass es eine andere Beschriftung hat und die Dateinamen abgeblendet sind. Wenn der Benutzer zur Laufzeit eine Datei auswählt und das Dialogfeld schließt, wird die FileName-Eigenschaft verwendet, um den gewünschten Dateinamen zu erhalten.
1 Legen Sie die Liste der Dateifilter fest, die im Listenfeld Dateityp angezeigt werden.
Legen Sie dazu die Filter-Eigenschaft unter Verwendung des folgenden Formats fest:
Beschreibung1 | Filter1 | Beschreibung2 | Filter2...
Beschreibung ist die Zeichenfolge, die in dem Listenfeld angezeigt wird - beispielsweise "Textdateien (*.txt)." Filter ist der Dateifilter - beispielsweise "*.txt." Jede Kombination aus Beschreibung | Filter muss durch ein Pipe-Symbol | getrennt werden.
2 Verwenden Sie die ShowOpen-Methode, um das Dialogfeld anzuzeigen.
Nachdem der Benutzer eine Datei ausgewählt hat, verwenden Sie die FileName-Eigenschaft, um den Namen der ausgewählten Datei zu erhalten.
Bei allen Standarddialogfeldern wird, wenn die CancelError-Eigenschaft auf True gesetzt ist, ein Fehler generiert, wenn der Benutzer auf die Schaltfläche Abbrechen des Dialogfelds klickt. Sie finden heraus, ob die Schaltfläche Abbrechen gedrückt wurde, indem Sie den Fehler auffangen, wenn das Dialogfeld angezeigt wird.
Beim folgenden Code wird das Dialogfeld Öffnen angezeigt und der ausgewählte Dateiname als Argument für eine Prozedur verwendet, die eine Datei öffnet:
Private Sub mnuFileOpen_Click ()
On Error GoTo ErrHandler ' CancelError ist auf True gesetzt.
CommonDialog1.Filter = "Alle Dateien (*.*)|*.*| " & _ ' Filter setzen.
"Textdateien (*.txt)|*.txt|Stapelverarbeitungddateien " & "(*.bat)|*.bat"
CommonDialog1.FilterIndex = 2 ' Standardfilter angeben.
CommonDialog1.ShowOpen ' Dialogfeld Öffnen anzeigen.
OpenFile (CommonDialog1.FileName) ' Prozedur zum Öffnen der Datei aufrufen.
Exit Sub
ErrHandler: ' Marke für Fehlerprozedur
Exit Sub ' Benutzer hat auf Abbrechen geklickt.
End Sub
Über das Dialogfeld Drucken kann der Benutzer Einstellungen für das Drucken festlegen. So kann beispielsweise der Bereich der zu druckenden Seiten, die Druckqualität, eine Anzahl der Kopien usw. festgelegt werden. Das Dialogfeld zeigt auch Informationen über den derzeit installierten Drucker an und ermöglicht dem Benutzer die Konfiguration oder Neuinstallation eines Standarddruckers.
Anmerkung Dieses Dialogfeld sendet keine Daten an einen Drucker. In dem Dialogfeld können Benutzer festlegen, wie Daten gedruckt werden sollen. Der Code zum Drucken der Daten im gewünschten Format muss von Ihnen geschrieben werden.
Wenn der Benutzer zur Laufzeit eine Auswahl im Dialogfeld Drucken trifft, können die folgenden Eigenschaften Informationen über die Auswahl des Benutzers enthalten.
Eigenschaft |
Legt folgendes fest |
Copies |
Die Anzahl der Kopien, die gedruckt werden sollen. |
FromPage |
Die erste Seite, die gedruckt werden soll. |
ToPage |
Die letzte Seite, die gedruckt werden soll. |
hDC |
Den Gerätekontext für den ausgewählten Drucker. |
Abbildung: Das Dialogfeld "Drucken"
1 Legen Sie die gewünschten Standardeinstellungen für das Dialogfeld fest, indem Sie die entsprechenden Eigenschaften für das Dialogfeld Drucken einstellen.
Wenn beispielsweise die Zahl "2" im Feld Kopien des Dialogfelds angezeigt werden soll, setzen Sie die Copies-Eigenschaft auf 2:
CommonDialog1.Copies = 2
2 Verwenden Sie die ShowPrinter-Methode zum Anzeigen des Dialogfelds Drucken.
Der folgende Code zeigt das Dialogfeld Drucken an, wenn der Benutzer auf die Befehlsschaltfläche Command1 klickt:
Private Sub Command1_Click ()
Dim BeginPage, EndPage, NumCopies, i
CommonDialog1.CancelError = True ' "Cancel" auf "True" setzen.
On Error GoTo ErrHandler
CommonDialog1.ShowPrinter ' Dialogfeld "Drucken" anzeigen.
BeginPage = CommonDialog1.FromPage ' Benutzerdefinierte Werte aus dem Dialogfeld abrufen.
EndPage = CommonDialog1.ToPage
NumCopies = CommonDialog1.Copies
For i = 1 to NumCopies
' Code hier zum Senden von Daten an den Drucker einfügen.
Next
Exit Sub
ErrHandler:
' Benutzer hat auf Abbrechen-Schaltfläche geklickt.
Exit Sub
End Sub
Anmerkung Falls die PrinterDefault-Eigenschaft auf True gesetzt ist, kann die Druckausgabe an das Printer-Objekt erfolgen. Außerdem werden, wenn die PrinterDefault-Eigenschaft auf True gesetzt ist, alle Änderungen, die der Benutzer im Einstellungsbereich des Dialogfelds Drucken vornimmt, zum Ändern der Druckereinstellungen in der Druckereinrichtung des Benutzers verwendet.