C#中的用户设置

时间:2014-01-28 11:05:35

标签: c# .net winforms visual-studio-2010

我正在尝试动态保存Name Value对设置。我可以动态地看到新保存的值。但是,当我从属性窗口访问设置页面时,它显示相同的旧值。这是代码:

 Properties.Settings.Default.Name = textBox1.Text;
 Properties.Settings.Default.Age = textBox2.Text;
 Properties.Settings.Default.Save();

任何建议?

3 个答案:

答案 0 :(得分:3)

假设您使用Visual Studio测试应用程序,则会出现问题,因为当您更改应用程序的设置时,您不会更改原始设置文件。当Visual Studio开始运行应用程序时,它会在目录中创建一个文件夹,其中代码的名称为" obj / Debug"或" obj / Release"并将所有DLL和资源复制到该文件夹​​中,包括设置文件。

这意味着对设置的更改将反映在" obj / Debug / yourappname.exe.config"而不是在原始文件中。如果您打开此文件,例如,使用文本编辑器,您将看到内容已更改。请记住,每次在Visual Studio中重新编译应用程序并开始运行时,此文件将被原始文件替换,丢失新设置。

您可以在该文件夹中手动运行.exe应用程序,并验证您的设置是否已保留。

答案 1 :(得分:2)

编译后,设置文件将部署到yourapplication.exe.config文件中。这是您要更改的文件(/Debug/app.exe.config)。如果要查看“属性窗口”中的更改,则必须手动打开.settings文件并编辑xml。

注意:更改.config文件后,更改是持久的..但只有在您再次编译应用程序之后。

答案 2 :(得分:1)

解决方案 - >属性 - >设置是您设置默认值的位置。用户设置可以在运行时更改,并将随应用程序一起保留,但不会将其写回Visual Studio项目。

在您的示例中,如果您在以后的时间再次运行程序(*不是通过在Visual Studio中调试/重建),则保存在代码段中的设置将保持不变。

想象一下,您的程序已部署在用户的PC上 - 不应该有一种机制来更改您的Visual Studio项目设置文件。