19.3 How do I implement a Folder Browser class?
http://www.syncfusion.com/FAQ/WinForms/FAQ_c86c.asp#q700qHOW TO: Implement a Managed Component that Wraps the Browse For Folder Common Dialog Box by Using C#
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q306285

解决方案 »

  1.   

    1.Add reference "Shell32.dll"
    2.Source:Shell32.Shell shell = new Shell32.ShellClass();
    Shell32.Folder folder = shell.BrowseForFolder(...);
      

  2.   

    FolderNameEditor.FolderBrowser 类型支持 .NET 框架结构,因此不适用于直接从代码中使用。建议象saucer(思归)说的那样!!!
      

  3.   


    /// <summary>
    /// 目录选择对话框类
    /// 需要在项目中引用system.design.dll,并在名字空间中使用using System.Windows.Forms.Design; 
    /// </summary>
    public class OpenFolderDialog : FolderNameEditor
    {
    /// <summary>
    /// 目录浏览对象
    /// </summary>
    private FolderNameEditor.FolderBrowser FolderDialog=new FolderNameEditor.FolderBrowser();
    /// <summary>
    /// 显示目录浏览对话框
    /// </summary>
    public DialogResult ShowDialog()
    {
    return FolderDialog.ShowDialog();
    }
    /// <summary>
    /// 返回的目录路径
    /// </summary>
    public string DirectoryPath
    {
    get { return FolderDialog.DirectoryPath; }
    }
    /// <summary>
    /// 对话框描述文字
    /// </summary>
    public string Description
    {
    get { return FolderDialog.Description; }
    set { FolderDialog.Description=value; }
    }
    /// <summary>
    /// 初始化对话框内容
    /// 0桌面;1InternetExplorer;2程序;3控制面板;4打印机;5MyDocuments;6Favorites;7启动;8Recent;9SendTo;10回收站;11开始菜单
    /// 17我的电脑;39MyPictures;49NetAndDialUpConnections;18NetworkNeighborhood;21Templates
    /// </summary>
    public int StartLocation 
    {
    get { return (int)FolderDialog.StartLocation; }
    set { FolderDialog.StartLocation=(FolderNameEditor.FolderBrowserFolder)value; }
    }
    /// <summary>
    /// 对话框返回样式
    /// 16384BrowseForEverything;8RestrictToSubfolders;1RestrictToFilesystem;4096BrowseForComputer
    /// </summary>
    public int Style 
    {
    get { return (int)FolderDialog.Style; } 
    set { FolderDialog.Style=(FolderNameEditor.FolderBrowserStyles)value; }
    }
    }