如何在C#中创建自定义打开文件对话框

4
如何在C#中创建一个用户控件,它具有OpenFileDialog的相同功能(以及一些扩展功能)?我已经按照这个的方法进行了操作,但是我无法找到解决我的问题的方法。
我的要求是在对话框中添加一个额外的按钮。如果单击该按钮,则应以与okcancel按钮相同的方式通知父级。

使用什么?Winforms?WPF?ASP.NET?MVC?Silverlight? - Kyle Trauberman
@Kyle Trauberman:Winforms... - Thorin Oakenshield
3个回答

2
您很可能需要使用原始的Windows接口来实现此操作。在高层次上,您需要执行以下操作:
  1. 创建IFileOpenDialog的实例。
  2. 查询此接口以获取对IFileDialogCustomize接口的引用。
  3. 使用AddPushButton方法添加按钮。
  4. 调用IFileOpenDialog接口上的Advise方法来注册处理事件的接口。该接口是由您实现的IFileDialogControlEvents。您必须同时实现该接口和IFileDialogEvents
  5. 当按下按钮时,将调用您的IFileDialogControlEvents.OnButtonClicked方法。
此功能仅适用于Vista。如果您需要支持XP,则需要使用GetOpenFileName并提供自定义的资源模板。从托管代码中进行这项工作真的很无聊! C++ / CLI库可以使这个过程更加可管理。

2

1

OpenFileDialog 是 Windows 内置功能(完全不是 .NET),因此扩展它是一项相当复杂的任务。为什么不从头开始构建它或寻找任何现有的解决方案呢?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接