Winforms首选项值

本文关键字:首选项 Winforms | 更新日期: 2023-09-27 18:25:14

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

因此,我在Settings.Settings中添加了一个名为path的Value,作为字符串和User Scope。

当我用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

我该怎么解决这个问题?有没有办法在修改设置后进行注册?

谢谢。

Winforms首选项值

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

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

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

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

您还需要调用Settings.Default.Save();