【发布时间】:2014-09-29 06:11:25
【问题描述】:
我正在做一个 WinForm 应用程序,我有一个包含两个文本框的表单,我在表单加载时从 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 而不是另一个,这很奇怪!
请注意,我尝试了以下方法,但仍然出现同样的问题:
Properties.Settings.Default.email_username = txtUsername.Text;
另外,我尝试了 Application Settings 的(属性绑定),但同样的问题出现了!
注意:当我调试应用程序时,我发现它正在将空的 "" 数据加载到一个 TextBox 中,但没有加载到另一个 TextBox 中!
那么,有什么问题吗?我该如何解决?
谢谢!
编辑: 这是表单的捕获,空字段应该像其他字段一样有数据!:
EDIT2:
我打开表单是这样的:
private void mnuEmailSettings_Click(object sender, EventArgs e)
{
using (var fms = new frmMailSettings())
{
fms.ShowDialog();
}
}
从设置中加载数据的代码位于过程LoadData() 中,该过程位于 from load 中。我正在通过调用 dispose AFTER 保存数据来关闭表单(我正在使用另一个过程 SaveData()。
在我发现数据存在于应用程序的AppData 文件夹中的user.config 中后,我已将标题更新为不“加载”。
【问题讨论】:
-
你确定这两个设置都是用户类型的吗?
-
是的。一切都有“用户”范围。
-
您可以添加当前代码的简单示例吗?也许其他地方发生了什么事:)
-
@Reniuz,表单中唯一的代码就像我发布的代码一样。请注意,我已经上传了表格的图片。
-
不,我的意思是显示您的代码如何打开表单、何时加载 texbox 以及如何关闭。我很确定您发布的这些行是好的,表单设计与您的问题无关。
标签: c# winforms settings.settings