Von VBA zu C#: Dateidialoge

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Unter VBA musste man schon einigen Zusatzcode inklusive Api-Deklarationen zu seinem Projekt hinzufügen, um Dialoge etwa zum Auswählen einer zu öffnenden Datei, eines Verzeichnisses oder zur Angabe eines Dateinamens zum Speichern anzuzeigen. Unter .NET gibt es dazu natürlich eine vorgefertigte Klasse, die alle notwendigen Funktionen liefert. Der vorliegende Artikel zeigt, wie Sie diese Dialoge anzeigen und die damit ermittelten Daten nutzen können.

Die folgenden Beispiele verwenden eine WPF-Anwendung unter C#.

Dateien auswählen per Klasse

Unter VBA gibt es verschiedene Varianten, um beispielsweise einen Datei öffnen-Dialog anzuzeigen. Per API, über die versteckte Wizhook-Klasse oder auch mit der entsprechenden Klasse der Office-Bibliothek. Alle Lösungen hatten Vor- und Nachteile, aber wirklich perfekt war keine davon.

Unter .NET und in unserem Fall unter C# gibt es eine Klasse namens OpenFileDialog. Diese ist Bestandteil des Namespaces Microsoft.Win32, den Sie der Klasse per using-Anweisung bekannt machen:

using Microsoft.Win32;

Danach können Sie bereits auf die OpenFileDialog-Klasse zugreifen. Dazu legen wir ein WPF-Formular an, das wie in Bild 1 aussieht. Das Textfeld heißt txtDateiname, die Schaltfläche btnDateiAuswaehlen. Für die Schaltfläche hinterlegen wir die folgende Ereignisprozedur:

Entwurf des Fensters zum Auswählen einer Datei

Bild 1: Entwurf des Fensters zum Auswählen einer Datei

private void btnDateiAuswaehlen_Click(object sender, 
         RoutedEventArgs e) {
     OpenFileDialog openFileDialog = new OpenFileDialog();
     if (openFileDialog.ShowDialog()== true) {
         txtDateiname.Text = openFileDialog.FileName;
     }
}

Diese erstellt zunächst ein neues Objekt auf Basis der Klasse OpenFileDialog. Im folgenden Schritt rufen wir den Datei öffnen-Dialog mit der Funktion ShowDialog auf. Diese zeigt den Datei öffnen-Dialog an und erwartet die Eingabe des Benutzers (siehe Bild 2). Die Funktion liefert als Ergebnis einen Boolean-Wert zurück, den die if-Anweisung auswertet. Lautet das Ergebnis true, hat der Benutzer eine Datei ausgewählt und wir können diese über die Eigenschaft FileName des OpenFileDialog-Objekts auslesen und als Text des Textfeldes txtDateiname eintragen.

Ein einfacher Datei öffnen-Dialog

Bild 2: Ein einfacher Datei öffnen-Dialog

Den Wert false liefert die Funktion nur dann zurück, wenn der Benutzer den Dialog mit der Schließen-Schaltfläche oben rechts oder mit der Abbrechen-Schaltfläche unten rechts beendet.

Eigenschaften des OpenFileDialog-Objekts

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar