2012-04-13 95 views
1

如果我创建用户级应用程序设置并将其绑定到窗体上的文本框,然后在文本框中键入内容,该值将自动保存,并且当应用程序再次启动时,值出现在文本框中。当我将设置限定为应用程序时,不会发生这种情况。应用程序设置范围 - 用户vs应用程序

为什么应用程序作用域设置不像用户作用域设置那样自动保存?

如果这是设计,我该如何手动保存这些设置并在运行时加载它们?

回答

4

简而言之,应用程序作用域设置不能在运行时更改,而用户作用域设置可在运行时进行读写。有一些替代使用的应用程序的范围设置:

  • 使用用户范围设置
  • This后建议寻找到ConfigurationManager中类。
  • 如果你不喜欢的用户范围的设置,因为他们不写,你可以实现自己的SettingsProvider并将它们写在任何你想

This post应用程序目录,对如何提出了一些建议最好的管理设置。最后,如果您有兴趣扩展自己或自己动手,则在设置体系结构上是Microsoft's documentation

+0

因此,应用程序范围的设置将在设计时通过属性窗口设置,然后单独保留?它们没有写入磁盘,然后在运行时从文件加载? – 2012-04-13 18:27:13

+0

@YourMother类。应用程序范围设置的默认值将被编译到您的应用程序中(请参阅属性文件夹 - > Settings.settings,设计人员在其中编写设置)。编译应用程序后,这些值也可以在MyApp.exe.config文件中覆盖。 – 2012-04-13 18:41:45

+0

谢谢。我测试了这一点,似乎它是如何工作的。我确实可以覆盖默认设置,即编辑 .exe.config文件。我的问题是,如果我删除这个文件,然后应用程序似乎再次加载默认。所以它似乎被编译到应用程序中。如果配置文件被意外删除并且已经使用新值编辑,会发生什么情况?它可以用默认值再次以某种方式重新生成吗?只是试图了解行为。 – 2012-04-13 19:07:15