【发布时间】:2012-12-17 10:38:03
【问题描述】:
在 CodeProject 和 StackOverflow.105932(以及其他一些文章,例如 StackOverflow.1873658 和 MSDN 文章)之后,我有一个主窗体,其大小、位置和 WindowState 保存在Properties.Settings.Default.<name> 中并从中读取,例如Properties.Settings.Default.WindowState = WindowState;,这对于这种窗体非常有用。我出现的每个代码示例似乎都认为 WindowState 的全局设置只有一个,没有一个说明如何区分每个实例的这些设置。
但是,我在表单的超类中编写了代码,因为我希望此应用程序中的所有表单都继承自该类,以便它们都能够保存/读取自己的大小、位置和状态。
我想做的只是用继承形式的类名替换上面键路径中的“默认”一词。这是伪代码,如果它可以工作的话会很棒(它没有,而且我找不到可以的变体):
Properties.Settings[this.ToString()].WindowState = WindowState;
如何正确、可重用、可维护、防熵地做到这一点?
编辑:“配置部分”会是答案吗? (也许为每个 Form 子类创建一个部分?)
编辑:不,不是配置部分,但我认为 this class 必须是正确解决方案的一部分。
【问题讨论】:
-
我认为您需要将其带到 Code Review 站点。
-
我真的希望这里的人们似乎一心只想对新用户的帖子投反对票,至少没有提供一些指向常见问题解答页面等的指针,将网站作为一个完全是一种伤害。
-
@user1944491 - 欢迎来到 Stack Overflow!您的帖子应该真正采取问题的形式。尽可能具体,并请尽量避免要求“主观”的答案。请参阅页面顶部的常见问题解答链接,了解如何最好地使用本网站。至于您当前的帖子,您能否改写一下,以便我们具体知道您需要什么帮助?或者,如果您只是寻求有关您的问题解决方案的反馈,上面的 Brannon 可能是正确的。
-
@XIVSolutions - 谢谢!我第一次出去时真的很想具体说明,但在阅读后我能明白你的意思。问题是“如何使用户设置特定于表单?” - 我最后一段中的代码是伪代码 - 没有用 - 我正在寻找正确的代码。我会尝试改写...
-
@user1944491 提出一个不会惹恼人们的 SO 问题本身就是一种艺术形式,我认为您做得不错。不要气馁,欢迎来到 SO :)
标签: c# windows winforms settings.settings settings