【问题标题】:Settings not saved in Settins.settings未保存在 Settings.settings 中的设置
【发布时间】:2017-03-18 11:56:52
【问题描述】:

我正在使用 Settings.Settings 在运行时存储设置。这对我早期的应用程序存储数据非常有帮助。但在我当前的项目中,它不保存设置数据。我的应用程序有一些选项卡,每个选项卡都包含一些文本框。我使用 textBox Text 来存储字符串值。

Properties.Settings.Default.Setting1 = textBox2.Text;
Properties.Settings.Default.Save();

这是我以前所有应用程序的工作方法。但我不明白为什么它在我当前的项目中不起作用。

【问题讨论】:

  • 它之前工作,“突然”停止工作?你能提供更多信息吗?
  • 它在我以前的应用程序中有效。在我当前的项目中它不起作用
  • 您能提供更多关于您当前项目的信息吗?这两行代码似乎是正确的,来自这篇 MSDN 帖子:msdn.microsoft.com/en-us/library/bb397755(v=vs.110).aspx 你是否对用户本地隐藏的应用程序数据有写权限? “用户设置保存在用户本地隐藏应用程序数据文件夹的子文件夹中的文件中。”

标签: c# settings


【解决方案1】:

由于您的问题没有包含太多细节,我已尝试尽可能多地回答:

尝试执行Properties.Settings.Default.Upgrade(),然后加载保存的设置。 您必须调用 ApplicationSettingsBase 派生类的 Upgrade 方法(通常称为 Settings,由 Visual Studio 为您创建)

Properties.Settings.Default.Upgrade();

何时/何地调用Upgrade 方法?您可以应用一个简单的技巧:将名为UpgradeRequired(示例)的用户设置定义为bool(最简单的方法是通过IDE)。确保其默认值为true

在应用程序的开头插入这段代码:

  if (Properties.Settings.Default.UpgradeRequired)
  {
      Properties.Settings.Default.Upgrade();
      Properties.Settings.Default.UpgradeRequired = false;
      Properties.Settings.Default.Save();
  }

因此 Upgrade 方法只会在版本更改后调用一次(因为您通过设置 UpgradeRequired = false 来禁用进一步升级,直到版本更改 - 当属性恢复默认值 true 时)。

检查您的设置范围 [USER/APPLICATION] 试试这个,如果它不起作用,请检查以下条件。

另外,下次更详细的问题将不胜感激。

权限(NTFS权限)

或活动目录权限

或windows驱动器容量已满。

或者存在两个或多个用户文件夹,而您检查了另一个。

例如:有两三个文件夹,user.domain、user.workgroupname、user。

尽管如此,我建议您了解System.Reflection 并开发您的个性化方法来保存设置,Visual Studio 提供的选项不是很可靠。

希望这对您有所帮助。

【讨论】:

    猜你喜欢
    • 2012-10-21
    • 2014-10-26
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多