c#app没有加载用户设置

时间:2014-09-29 06:11:25

标签: c# winforms settings.settings

我正在做一个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中而不是加载到另一个文本框中!

那么,问题是什么?我该如何解决?

谢谢!

修改 这是一个表单的捕获,空字段应该有像其他字段一样的数据!:

https://imgur.com/bSvlk6d

EDIT2:

我正在打开这样的表格:

private void mnuEmailSettings_Click(object sender, EventArgs e)
    {
        using (var fms = new frmMailSettings())
        {
            fms.ShowDialog();
        }

    }

从设置加载数据的代码位于从加载中驻留的过程LoadData()内。我正在通过调用dispose AFTER保存数据来关闭表单(我正在使用另一个程序SaveData()

在我发现应用程序的user.config文件夹中的AppData中存在数据后,我已将标题更新为“未加载”。

2 个答案:

答案 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中的设置做了些什么。不幸的是,代码是错误的,现在一切正常!

谢谢!