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 aufzutauchen 😞

    Weiß 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 Thread

    Hast 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ühren

    Ansonsten wurschtel dich dort

    http://www.google.de/search?hl=de&q="Current+Thread+must+be+set+to+Single-Thread-Apartment"&btnG=Google-Suche&meta=

    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 🙂


Anmelden zum Antworten