8

我正在寻找最简单的解决方案,以在我的(C#)WinForms 项目中的目录前面使用复选框来实现文件夹浏览对话框。

我在备份中心的Vista中看到了这种对话框。它就像一个普通的文件夹浏览对话框,但在每个文件夹前面都有一个复选框。如果您选中了一个文件夹,则其中的所有文件夹和文件也会被选中,而您之后仍然可以单独取消选择它们。

如果没有预制控件或其他任何东西,那么最简单的方法是: - 操作普通文件夹浏览对话框以包含复选框功能;或 - 操作 TreeView 控件以使用 Shell 图标作为路径(以便桌面、我的音乐、普通文件夹、文件等正确的系统图标),以便我自己构建一个?

注意:我希望对话框/控件同时显示文件文件夹。

提前感谢任何提示和提示。=)

4

3 回答 3

4

从树vew开始。(不过,您必须自己处理动态获取孩子)。

如果您不关心资源管理器命名空间(即在我的电脑下方有控制面板,或者在下面有回收站、网络邻居和其他一些东西的桌面),并且只需要带有驱动器号的驱动器上的文件,您可以从枚举驱动器开始字母(使用 System.IO.Directory.GetLogicalDrives)。

您可以通过从 ManagedWinapi 库 ( http://mwinapi.sourceforge.net/ ) 调用 ExtendedFileInfo.GetIconForFilename 来获取 shell 图标,该库适用于文件和文件夹。

于 2009-04-22T18:00:07.343 回答
0

实现此类功能的最简单方法是使用标准 TreeView 控件,并将 CheckBoxes 属性设置为 true。如果您想在每个节点旁边添加一个小文件夹图像,您还应该能够使用图像。

有关详细信息,请参阅此 MSDN 文章。

于 2009-04-22T17:48:45.187 回答
0

FolderBrowserDialog 不支持复选框。查看FolderView控件,它在文件夹和文件旁边显示多状态复选框。

于 2009-07-10T04:29:58.977 回答