在 VS .NET 中,当您为项目选择文件夹时,会显示一个看起来像 OpenFileDialog 或 SaveFileDialog 的对话框,但设置为仅接受文件夹。自从我看到这个,我就想知道它是怎么做到的。我知道 FolderBrowserDialog,但我从未真正喜欢过该对话框。它开始时太小,无法让我利用能够键入路径的优势。
我几乎可以肯定现在还没有办法从 .NET 中做到这一点,但我也很好奇您如何从非托管代码中做到这一点。除了从头开始完全重新实现对话框外,您如何修改对话框以使其具有此行为?
我还想重申,我知道 FolderBrowserDialog,但有时我不喜欢使用它,此外我真的很好奇如何以这种方式配置对话框。告诉我只使用 FolderBrowserDialog 可以帮助我保持一致的 UI 体验,但不能满足我的好奇心,因此它不算作答案。
这也不是特定于 Vista 的东西;我从 VS .NET 2003 开始就一直看到这个对话框,所以它在 Win2k 和 WinXP 中是可行的。这不是一个“我想知道做这件事的正确方法”的问题,而是一个“自从我第一次想在 VS 2003 中这样做以来我一直对此感到好奇”的问题。我知道 Vista 的文件对话框有一个选项可以执行此操作,但它在 XP 中一直有效,所以我知道他们做了一些以使其正常工作。特定于 Vista 的答案不是答案,因为问题上下文中不存在 Vista。
更新:我接受 Scott Wisniewski 的回答,因为它附带了一个工作示例,但我认为 Serge 值得称赞的是指向对话框自定义(这在 .NET 中是不可否认的,但它确实 工作)和 Mark Ransom 发现 MS 可能为此任务推出了一个自定义对话框。
最佳答案
我有一个我编写的名为 OpenFileOrFolder 对话框的对话框,它允许您打开文件夹或文件。
如果将其 AcceptFiles 值设置为 false,则它仅在接受文件夹模式下运行。
关于.net - 如何配置 OpenFileDialog 来选择文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31059/