1

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

但我不知道从哪里开始,因为我没有在网上看到任何东西,我想知道是否有人以前做过这个,我应该研究什么,或者我该如何去做?

我想构建一个新的 SaveFileDialog,因为我觉得需要(或想要)为其添加更多功能。而且我还觉得如果我构建一个新的,我会学到更多关于 C# 以及 SaveFileDialog 如何在幕后工作的知识

老实说,我不喜欢当前的 SaveFileDialog(是的,它可以胜任),但我确实想为它添加额外的功能。

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

4

4 回答 4

8

为什么不扩展它而不是从头开始创建呢?

于 2009-09-07T08:52:58.223 回答
4

好吧,对话框只是一种形式。从表单开始,添加文件系统浏览组件(列表视图、下拉列表)等,在后面添加代码。它并不难,但可能很乏味,但我会说一个很好的教育练习,您将了解为什么您可能只想使用内置的。

于 2009-09-07T08:41:29.630 回答
3

如果您真的确定要创建自己的 SaveFileDialog 版本,我建议您不要只克隆现有版本。如果你让它看起来像标准的,人们会期望它表现得像标准的,但是有很多小细节,你可能不会全部了解。

您想避免The Uncanny Valley of User Interface,因此您应该明确表示它不是要成为 SaveFileDialog + some-new-bits。它应该只是实现相同的目标(即选择在哪里保存某些东西)。

如果您确实想创建 SaveFileDialog + some-new-bits,那么按照 Shoban 所说的那样沿着扩展对话框的路径前进是可行的方法。

NOTE: None of this really applies if all you want to do is build your own for learning purposes, and then throw it away when you're doing. But if you ever want to use it a real project, then you should keep this in mind.

于 2009-09-07T09:10:04.523 回答
1

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

您可以在 MSDN 上阅读更多关于常见的打开和另存为对话框的信息,但如果您习惯于 Windows 窗体编程,您可能会对原生 Win32 API 感到陌生。Window Vista 引入了一个新的通用项对话框,并且基于 COM 的 API 使其更易于在 Windows 窗体应用程序中使用。

于 2009-09-07T08:56:01.617 回答