【问题标题】:Winforms preferences valuesWinforms 首选项值
【发布时间】:2013-07-28 22:24:38
【问题描述】:

我是 winforms 的初学者,刚刚开始使用它的首选项。

所以,我在我的 Settings.settings 中添加了一个名为 path 的值,作为字符串和用户范围。

当我选择带有FolderBrowserDialog 的新路径时,我会更改它,然后单击“确定”按钮后,我会像这样更改首选项:

private void buttonPref_Click(object sender, EventArgs e)
        {
            Form2 subForm2 = new Form2(textBoxRep.Text);
            subForm2.ShowDialog();

            if (subForm2.DialogResult == DialogResult.OK)
            {
                Settings.Default.path= subForm2.rep();
                subForm2.Close();
            }
            else
            {
                subForm2.Close();
            }
         }

            public string rep()
            {
                return textBoxRep.Text;
            }

然后,当我运行我的应用程序时,我会在我的首选项中加载该值:

    textBoxRep.Text = Settings.Default.path;

但是,每次新运行后,该值都会设置为空。

所以我尝试了一个应用程序范围,但我得到了一个只读错误:Settings.Default.path

我该如何解决这个问题?修改后有没有办法注册设置?

谢谢。

【问题讨论】:

  • 您是否在任何地方调用 Settings.Default.Save() 以将设置保存到配置文件中?
  • 另外值得注意的是,如果您在 VS 中运行,每次重新运行应用程序时,配置文件往往会被覆盖。
  • 感谢您的精确。

标签: c# winforms settings


【解决方案1】:

你需要调用Save方法如下

Settings.Default.path= subForm2.rep();

Settings.Default.Save();

应用程序范围的设置是只读的,并且只能是 在设计时更改或通过更改其之间的 .config 文件 应用程序会话。但是,用户范围的设置可以是 在运行时编写,就像更改任何属性值一样。这 新值在应用程序会话期间持续存在。 你 可以在应用程序会话之间保留对设置的更改 通过调用 Save 方法。

How To: Write User Settings at Run Time with C#

【讨论】:

  • 谢谢。完整的答案。奇怪的是,当我第一次尝试时, .Save() 没有出现。但是重新打开 Visual Studio 后,它就在那里。
【解决方案2】:

您还需要致电Settings.Default.Save();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 2017-10-28
    相关资源
    最近更新 更多