2012-02-10 19 views
20

Olası Çoğalt Seç Dosya Aç iletişim kullanmak için: C# kullanıyorum ve tamamen bir klasörü seçmek için SelectFolderDialog kaçınmak istiyorum
How do you configure an OpenFileDIalog to select folders?Klasör nasıl

. Bunun yerine, bir klasör seçmek için OpenFileDialog'a daha yakın bir şey kullanmak istiyorum. daha görsel Örneğin

, aşağıdaki gibi (eğer tam olarak değil) yakın bir şey arıyorum: http://i44.tinypic.com/x38tx1.png

enter image description here

Herhangi bir fikir?

+3

Vista IFileDialog arabirimi bu seçeneği sunar. Windows API Kod Paketi, CommonOpenFileDialog sınıfı, IsFolderPicker özelliği kullanılabilir. –

+0

@HansPassant: Bunu bir yanıt olarak eklerseniz, onu tekrar yazacağım. – Heinzi

+0

@HansPassant: Buna bir örnek verebilir misiniz? Heinzi ile aynı fikirdeyim. – Demasterpl

cevap

28

Windows Vista'nın klasör seçimi iletişim kutusu, tam istediğiniz gibi görünüyor. Ne yazık ki, .NET'in FolderBrowserDialog, kaçınmak istediğiniz eski Windows XP benzeri iletişim kutusunu gösterir.

Eğer

  • kullanımı bazı üçüncü taraf .NET kitaplığı (örn Ookii.Dialogs),
  • birini kullanabilirsiniz ilgili Windows API çağrılarını veya
  • kullanabilirsiniz bu Vista tarzı iletişim erişmek için Windows API Code Pack: Bu iletişim, Windows Vis daha eski işletim sistemlerinde kullanılabilir olmadığını

    using Microsoft.WindowsAPICodePack.Dialogs; 
    
    ... 
    
    var dialog = new CommonOpenFileDialog(); 
    dialog.IsFolderPicker = true; 
    CommonFileDialogResult result = dialog.ShowDialog(); 
    

    Not ta, bu yüzden önce CommonFileDialog.IsPlatformSupported'u kontrol ettiğinizden emin olun.

+2

Her ikisi de 3.5'da Winforms ve 4.0'da WPF Vista iletişim kutusunu kullanmak için güncellendi. –

+0

@HansPassant: Hayır. Sadece denedim: 'yeni FolderBrowserDialog(). ShowDialog();' bir .NET 4.0 WinForms uygulamasında aynı eski, çirkin FolderBrowserDialog'u gösterir. – Heinzi

+0

FileDialog.AutoUpgradeEnabled özelliğini kontrol edin. –