453 Stimmen

Wie verwende ich OpenFileDialog, um einen Ordner auszuwählen?

Ich hatte vor, das folgende Projekt zu verwenden: https://github.com/scottwis/OpenFileOrFolderDialog

Allerdings gibt es ein Problem: Es verwendet die GetOpenFileName Funktion und OPENFILENAME Struktur. OPENFILENAME hat das Mitglied namens templateID der der Bezeichner für die Dialogvorlage ist. Und das Projekt enthält die res1.rc Datei und die Dialogvorlage init. Aber ich konnte nicht herausfinden, wie man diese Datei zu meinem C#-Projekt anhängen.

Gibt es eine bessere Möglichkeit, eine OpenFileDialog um Ordner auszuwählen?

10voto

Simon Whitehead Punkte 60375

Klingt für mich, als wären Sie nur hinter dem FolderBrowserDialog .

9voto

Ben Keene Punkte 411

Hier ist eine weitere Lösung, die den gesamten Quellcode in einer einzigen, einfachen ZIP-Datei bereitstellt.

Es präsentiert den OpenFileDialog mit zusätzlichen Windows-Flags, die ihn wie den Windows 7+ Ordnerauswahldialog funktionieren lassen.

Laut der Website ist es gemeinfrei: "Es gibt keine Lizenz im eigentlichen Sinne, denn Sie können mit dem Code machen, was Sie wollen."

Archive.org-Links:

9voto

C. Augusto Proiete Punkte 19687

Werfen Sie einen Blick auf die Ookii-Dialoge Bibliotheken, die eine Implementierung eines Ordner-Browser-Dialogs für Windows Forms bzw. WPF enthält.

enter image description here

Ookii.Dialogs.WinForms

https://github.com/augustoproiete/ookii-dialogs-winforms


Ookii.Dialogs.Wpf

https://github.com/augustoproiete/ookii-dialogs-wpf

1voto

killragtshirts Punkte 13

Im neu zu C # und stieß auf diesen Thread gerade jetzt.

Dies könnte auch für diejenigen interessant sein, die neu in der Sprache sind.

Design des FolderBrowserDialogs ändern

0voto

RedAI Punkte 1

Die Antwort, die von Simon Mourier wäre die beste Antwort auf die Frage des Auftraggebers. Es handelt sich nicht um ein NuGET-Paket, so dass es in Zukunft keine Abhängigkeitsprobleme bei der Auswahl der Ordnermethode geben wird.

Wenn Sie einen Fehler im Zusammenhang mit " ...ist in C# 7.3 nicht verfügbar ", einfach hinzufügen <LangVersion>8.0</LangVersion> zu Ihrem .csproj (beim Testen mit Visual Studio tritt beim Erstellen und Ausführen kein Fehler auf)

Wenn Sie die Projektsprache nicht ändern können, ersetzen Sie einfach den Eigentümer ??= Application.Current.MainWindow mit

Besitzer = Besitzer ?? Application.Current.MainWindow

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X