gpt4 book ai didi

c# - 如何在 OpenFileDialog 窗口中隐藏功能和可选择的文件夹/驱动器?

转载 作者:行者123 更新时间:2023-11-30 12:48:10 33 4
gpt4 key购买 nike

我目前正在为运行 WES7 的嵌入式设备开发软件。该应用程序是一个标准的 .NET 3.5 WinForms 项目。

要求是用户应该能够从他们的 pendrive 或网络中浏览和选择特定文件,但不能从系统驱动器上的任何位置浏览和选择特定文件。因此,我正在寻找一种解决方案,以某种方式隐藏标准 OpenFileDialog 窗口中的链接和按钮,这样用户将只能看到他们的 pendrives(如果有的话)或网络位置链接。

我已经在 MSDN 和其他论坛上进行了搜索,直到现在我才找到任何想法。如果没有办法使用标准的 OpenFileDialog 来完成这项工作,是否有任何简单的自定义组件可以用于浏览仅限于指定驱动器或父文件夹的文件?

最佳答案

给你,就像Customizing Your Open File Dialog一样简单

The OpenFileDialog class exposes a set of properties to configure the dialog. For example, you can choose the initial directory, the initial filter index, the title of the window, whether multiple files can be selected, and whether the application's current directory should be restored before closing. The class also fires an event (called FileOk) whenever the user clicks on the Open button.

OpenFileDialog is a sealed class, so you can't derive from it. However, if you want to customize the behavior of a file dialog, to the extent that it is possible, you should create a brand new class deriving from the abstract class FileDialog. In this case, you have access to a couple of powerful but protected methods such as HookProc and RunDialog. HookProc defines the dialog box hook procedure that adds specific functionality to the common dialog....

更新:

在 Windows 7 PC 上它不起作用。例如:

OpenDialogPlaces o = new OpenDialogPlaces();
//o.Places.Add(18);
//o.Places.Add(5);
//o.Places.Add(6);
o.Init();
o.OpenDialog.ShowDialog();
o.Reset();

仍然在左侧显示所有内容:

enter image description here

它在以前版本的 Windows 中确实有效:

enter image description here

另外一件事,微软似乎已经改变了 ComDlg32 的位置,我尝试了两个地方但没有成功。

enter image description here

关于c# - 如何在 OpenFileDialog 窗口中隐藏功能和可选择的文件夹/驱动器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14941340/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com