我正在尝试动态保存Name
Value
对设置。我可以动态地看到新保存的值。但是,当我从属性窗口访问设置页面时,它显示相同的旧值。这是代码:
Properties.Settings.Default.Name = textBox1.Text;
Properties.Settings.Default.Age = textBox2.Text;
Properties.Settings.Default.Save();
任何建议?
答案 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项目设置文件。