fileopendialog für Ordner

lukasS

Erfahrenes Mitglied
Hallo,

ich wollte fragen, wie man eine Ordnerdialog (folderbrowserdialog) wie im VisualStudio 2010 öffnen kann. Gemeint ist der Dialog wenn man ein neues Projekt erzeugen will und dann den Speicherort (Ordner) festlegen muss.
Dort wird ein FileOpenDialog aber mit einer Ordner und nicht Dateiauswahl angezeigt.

Leider konnte ich nichts gescheites im Internet finden.

Ich arbeite mit .NET 2.0, jetzt weiß ich nicht ob das ggf. damit zusammen hängt.

Danke schon mal!

Gruß

Lukas
 

lukasS

Erfahrenes Mitglied
Hallo Shakie,

ich meine nicht den normalen FolderBrowserDialog, ich meine den, der wie der FileOpenDialog aussieht (siehe Bild). Der ist aber nur für Ordnerauswahl da, nicht für Dateiauswahl. Zudem steht auch noch "Ordner auswählen" auf dem Button.

Ist das einer aus der .NET-Umgebung oder ist das ein selbstgebauerter von den Studio-Entwicklern?

Gruß

Lukas
 

Anhänge

  • anhang.jpg
    anhang.jpg
    71,6 KB · Aufrufe: 22

Alexander Schuc

crazy-weasel
Hallo!

Diesen Dialog den du meinst gibt es erst seit Vista, und steht im .net Framework nicht zu Verfügung.

Es gibt jedoch das Windows API CodePack welches diverse Features von Vista bzw 7, darunter auch dieser neue FileDialog.

Einfach runterladen, entpacken, und Microsoft.WindowsAPICodePack.dll sowie auch Microsoft.WindowsAPICodePack.Shell.dll in deinem Projekt referenzieren.

Verwendet wird es dann so:

C#:
using System;
using System.Windows.Forms;
using Microsoft.WindowsAPICodePack.Dialogs;

namespace DialogTest
{
        public partial class TestForm : Form
    {
        public TestForm()
        {
            InitializeComponent();
        }

        private void browseFolders_Click(object sender, EventArgs e)
        {
            using(CommonOpenFileDialog ofd = new CommonOpenFileDialog())
            {
                ofd.IsFolderPicker = true;

                var result = ofd.ShowDialog();

                if (result == CommonFileDialogResult.Ok)
                {
                    //..
                }

            }

        }
    }
}

Wenn dein Programm auch noch unter XP laufen sollte, wäre es angebracht mittels CommonOpenFileDialog.IsPlatformSupported zu prüfen, ob der Dialog am System überhaupt unterstützt wird. Näheres steht aber sicher in der Doku.

lg,..