2012-02-10 135 views
20

可能重复:
How do you configure an OpenFileDIalog to select folders?如何使用打开文件对话框,选择文件夹

我使用C#,我想完全避免SelectFolderDialog选择一个文件夹。相反,我想使用更接近OpenFileDialog的东西来选择一个文件夹。

对于一个更直观的例子,我在找一个接近(如果不完全)像下面这样:http://i44.tinypic.com/x38tx1.png

enter image description here

任何想法?

+3

Vista IFileDialog接口公开此选项。在Windows API代码包,CommonOpenFileDialog类,IsFolderPicker属性中提供。 – 2012-02-10 13:01:02

+0

@HansPassant:如果你将其作为答案添加,我会赞扬它。 – Heinzi 2012-02-10 13:03:31

+0

@HansPassant:你能举个例子吗?我同意Heinzi的观点。 – Demasterpl 2012-02-10 15:09:36

回答

28

Windows Vista的文件夹选择对话框看起来与您想要的非常相似。不幸的是,.NET的FolderBrowserDialog显示了您想要避免的旧式Windows-XP式对话框。

打开Vista风格的对话框,您可以

  • 使用一些第三方.NET库(例如Ookii.Dialogs
  • 使用相关的Windows API调用或
  • 使用Windows API Code Pack

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

    注意,这个对话框是不可用的操作系统比Windows可见年长ta,所以一定要先检查CommonFileDialog.IsPlatformSupported

+2

3.5中的Winforms和4.0中的WPF都已更新为使用Vista对话框。 – 2012-02-10 12:57:01

+0

@HansPassant:不,我只是试过它:'在一个.NET 4.0 WinForms应用程序中显示新的FolderBrowserDialog()。ShowDialog();'显示相同的旧的,丑陋的FolderBrowserDialog。 – Heinzi 2012-02-10 13:01:42

+0

检查FileDialog.AutoUpgradeEnabled属性。 – 2012-02-10 13:09:00

相关问题