2

我是winforms的初学者,刚刚开始使用它的偏好。

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

当我使用 a 选择新路径时,我会更改它FolderBrowserDialog,然后单击 Ok 按钮后,我会更改如下首选项:

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

我怎样才能解决这个问题?修改后有没有办法注册设置?

谢谢你。

4

2 回答 2

4

您需要调用 Save 方法,如下所示

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

Settings.Default.Save();

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

如何:使用 C# 在运行时编写用户设置

于 2013-07-29T08:03:24.750 回答
2

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

于 2013-07-29T08:03:26.953 回答