Winforms首选项值

时间:2013-07-29 08:00:24

标签: c# winforms settings

我是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

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

谢谢。

2 个答案:

答案 0 :(得分:4)

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

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

Settings.Default.Save();
  

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

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

答案 1 :(得分:2)

您还需要拨打Settings.Default.Save();