创建一个新的SaveFileDialog

时间:2009-09-07 08:34:22

标签: c# winforms new-operator savefiledialog

经过大量的思考和考虑,以及Google-ing,我一心想创建自己的SaveFileDialog。

但是我不知道从哪里开始,因为我没有在网上看到任何东西,我想知道是否有人之前已经做过这件事,我应该调查什么,或者我怎么可能这样做?任何帮助将不胜感激。

谢谢: - )

Baeltazor。

编辑:

<小时/> 我想构建一个新的SaveFileDialog,因为我觉得需要(或想要)为它添加更多功能。而且我也觉得如果我建立一个新的,我会学到更多关于C#以及SaveFileDialog如何在幕后工作

说实话,我不喜欢当前的SaveFileDialog(是的,它完成了这项工作),但我确实想要为它添加额外的功能。

啊,我认为没有任何限制。我不能肯定地说,因为我是新手,不知道需要什么或者......

4 个答案:

答案 0 :(得分:8)

为什么不extend it而不是从头开始创作?

答案 1 :(得分:4)

对话框只是一个表单。从表单开始,添加文件系统浏览组件(listview,dropdown)等,添加你的代码。它不是那么困难,但可能很乏味,但我会说一个很好的教育练习,你会知道为什么你可能只想使用内置的。

答案 2 :(得分:3)

如果你真的确定要创建自己的SaveFileDialog版本,我建议不要只是克隆现有版本。如果你看起来像标准的一样,人们会期望它的行为像标准的一样,但是有很多细节,你可能不会得到它们。

你想避免The Uncanny Valley of User Interface,所以你应该清楚它不是试图成为SaveFileDialog + some-new-bits。它应该实现相同的目标(即选择保存的东西)。

如果你想创建SaveFileDialog + some-new-bits,那么沿着extending the dialog的路径走,正如Shoban所说的那样。

注意:如果你想要做的只是为了学习目的而建立自己的,然后在你做的时候扔掉它,这一切都不适用。但如果您想将它用作真正的项目,那么您应该牢记这一点。

答案 3 :(得分:1)

SaveFileDialog是操作系统的一部分,在不同版本的操作系统上看起来会有所不同。有很多方法可以自定义它,但在Windows窗体项目中这并不容易。它仍然可以完成,但您必须挂钩到本机Win32 API。如果您只是想使用Windows Forms和C#,您可以继续设计一个看起来像SaveFileDialog的表单,但是您会错过本机对话框的所有优点。

您可以阅读有关common open and save as dialog boxes on MSDN的更多信息,但如果您习惯使用Windows窗体编程,则可能会被本机Win32 API疏远。 Window Vista引入了新的common item dialog,基于COM的API使其更易于在Windows窗体应用程序中使用。