除了选择文件夹外,我们希望阻止用户执行任何。我们不想让他删除文件/文件夹,重命名它们,访问上下文菜单等。但是我们不能覆盖任何东西,因为FolderBrowserDialog被密封了。
我们用Google搜索并找到了一些解决方案:
任何人遇到这个问题并找到了最佳解决方案吗?它必须是.NET 4.0兼容的
答案 0 :(得分:1)
你最好的选择是使用Shell MegaPack中的FolderView控件 - 它可以按你想要的方式自定义 - 你可以转换shell上下文菜单,重命名,拖放,键盘快捷键等,
免责声明:我们是上面提到的FolderView的开发者。
答案 1 :(得分:0)
最后,我们解决了它实施我们自己的控制。它比我们想象的要简单得多。简而言之,我们只是从System.Windows.Forms.Form继承了一个类,左边是System.Windows.Forms.TreeView,右边是System.Windows.Forms.ImageList,用于显示当前文件夹的内容。然后我们从Shell32 DllImport'ed SHGetFileInfo和ExtractIconEx,以使TreeView和ImageList的图标看起来像资源管理器,瞧!