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
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
2.Source:Shell32.Shell shell = new Shell32.ShellClass();
Shell32.Folder folder = shell.BrowseForFolder(...);
/// <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; }
}
}