我正在做一个WinForm应用程序,我有一个有两个TextBox的表单,我在表单加载时从Settings.Default
加载值,如下所示:
txtUsername.Text = Properties.Settings.Default["email_username"].ToString();
txtAddress.Text = Properties.Settings.Default["physical_address"].ToString();
我将值保存回Settings.Default
,然后在用户点击按钮时处理该表单,如下所示:
Properties.Settings.Default["email_username"] = txtUsername.Text;
Properties.Settings.Default["physical_address"] = txtAddress.Text;
Properties.Settings.Default.Save();
当我关闭(处理)表单然后再次打开它(应用程序仍在运行)时,我可以正常加载设置。但是,如果我关闭应用程序然后再次打开表单(我希望找到加载的数据)我发现数据被加载到 ONE TextBox而不是另一个,这是奇怪的! / p>
请注意我已经尝试了以下但仍然会出现同样的问题:
Properties.Settings.Default.email_username = txtUsername.Text;
另外,我已经尝试了应用程序设置(属性绑定),但同样的问题发生了!
注意:当我调试应用程序时,我发现它正在将空""
数据加载到其中一个TextBox中而不是加载到另一个文本框中!
那么,问题是什么?我该如何解决?
谢谢!
修改 这是一个表单的捕获,空字段应该有像其他字段一样的数据!:
EDIT2:
我正在打开这样的表格:
private void mnuEmailSettings_Click(object sender, EventArgs e)
{
using (var fms = new frmMailSettings())
{
fms.ShowDialog();
}
}
从设置加载数据的代码位于从加载中驻留的过程LoadData()
内。我正在通过调用dispose AFTER保存数据来关闭表单(我正在使用另一个程序SaveData()
。
在我发现应用程序的user.config
文件夹中的AppData
中存在数据后,我已将标题更新为“未加载”。
答案 0 :(得分:1)
如果您已使用Settings.Default
,请尝试按名称访问设置,而不是按字符串键访问设置。
txtUsername.Text = Properties.Settings.Default.email_username;
txtAddress.Text = Properties.Settings.Default.physical_address;
答案 1 :(得分:0)
很抱歉浪费你的时间,但我发现了问题。
起初我认为应用程序不是SAVING数据,但在检查user.config
后我意识到数据已正确保存。
我忘记了我在使用Program.cs
中的设置做了些什么。不幸的是,代码是错误的,现在一切正常!
谢谢!