Auswahl eines Verzeichnisses über Toolbox im Visual Studio
-
Grüße in die Runde !
Ich würd ganz gerne in ein Form eine Komponente einbauen mit der sich der Benutzer einen Ordner des Systems aussuchen kann in den z.B. irgendwas gespeichert wird.
Derzeit mach ich das per händischer Eingabe in ein Textfeld, das ist aber bei mehrfach verschachtelten Ordnern reichlich mühsam.
Im visual studio 2005 gäbs z.B. eine Komponente "DirectorySearcher", ich finde aber leider nicht heraus wie ich den dazu bringen in meinem Formular aufzutauchenWeiß da jemand was ?
Danke
PaulchenPanther
-
Servus,
meinst du vielleicht den "FolderBrowserDialog"?
mfg
Hellsgore
-
Grundsätzlich ist das wahrscheinlich der richtige Dialog, ich hab aber leider keine Ahnung wie ich den so einbaue dass er auch aufgeht wenn ich irgendwas betätige.
Im Form Designer kann ich den nur unten in die Leiste ziehen, aber keinen Button oder sonstwas damit verknüpfen. Und deshalb reagiert der natürlich auch auf nix
-
Ich versuche vorläufig den Dialog per
folderBrowserDialog1.ShowDialog();
zu aktivieren.
Leider bekomme ich die Fehlermeldung "Current Thread must be set to Single-Thread-Apartment". Das das ganze aber eine Applikation mit Forms ist und ich die natürlich multi-threaded gebaut hab, weiß ich überhaupt nicht mehr was ich damit anfangen soll.
-
Du mußt den Hauptthread deiner Applikation auf STAThread setzen:
[STAThread] static void Main(string [] args)
Dies hat nichts direkt mit Multithreading in deinem Programm zu tun, sondern bezieht sich nur auf den Daten-Austausch mittels COM.
-
Servus,
vorab kleines Beispiel zum FolderBrowserDialog:
FolderBrowserDialog fb = new FolderBrowserDialog(); fb.Description = "Wählen Sie ein Verzeichnis aus:"; string path = string.Empty; if (fb.ShowDialog() == DialogResult.OK) { path = fb.SelectedPath; }
Du kannst ja auch mal die MSDN dazu befragen.
Zu deinem Problem, muss ich erstmal eine Vermutung aufstellen, solange hier keine eine Lösung postet
- Du hast also ein stinknormales VS2003 C# WindowsForms Projekt.
- Du hast keine weiteren DLLs etc. eingebunden.
- Du rufst den FolderBrowserDialog in deinem Hauptformular auf und nicht in einem selbst gebastelten ThreadHast du STAThread vor deinem Main Methode stehen?
[STAThread] static void Main()
Obwohl ich eher glaube das es daran nicht liegen kann.
Hattest du das Projekt mit VS2005 geöffnet gehabt und dann wieder mit VS2003 geöffnet? Dann würde ich dir mal empfehlen dein Projekt zu bereinigen:
- Dein Projekt vorher schließen
- In deinem Projektverzeichnis den "obj" Ordner löschen
- Projekt wieder öffnen
- Ein Build Solution durchführenAnsonsten wurschtel dich dort
mal durch.
Ich kenne den Fehler nicht und mit dem bisschen Info kann ich persönlich auch nicht mehr anfangen..
mfg
Hellsgore
-
doch, der [STAThread] war das Problem