2

我们希望防止用户做任何事情,除了选择一个文件夹。我们不想让他删除文件/文件夹、重命名它们、访问上下文菜单等。但是我们不能覆盖任何东西,因为 FolderBrowserDialog 是密封的。

我们搜索了一下,找到了一些解决方案:

  • 实现我们自己的 FolderBrowserDialog:没有时间,只能作为最后的手段
  • 这家伙是为 OpenFileDialog 做的,可能有用,但似乎有点矫枉过正

有人遇到过这个问题并找到了最佳解决方案吗?它必须与 .NET 4.0 兼容

4

2 回答 2

1

你最好的办法是使用像 Shell MegaPack 中的 FolderView 这样的控件——它可以按照你想要的方式进行自定义——你可以打开 shell 上下文菜单、重命名、拖放、键盘快捷键等,

免责声明:我们是上述 FolderView 的开发者。

于 2011-07-13T09:41:12.740 回答
0

最后,我们解决了它实现我们自己的控制。这比我们想象的要简单得多。简而言之,我们只是创建了一个继承自 System.Windows.Forms.Form 的类,左侧是 System.Windows.Forms.TreeView,右侧是 System.Windows.Forms.ImageList,以显示当前文件夹的内容。然后我们从 Shell32 DllImport'ed SHGetFileInfo 和 ExtractIconEx 以使 TreeView 和 ImageList 的图标看起来像 Explorer 的,瞧!

于 2011-07-22T12:25:42.677 回答