【问题标题】:c# app not loading user settingsc#应用程序不加载用户设置
【发布时间】: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 中!

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

谢谢!

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

https://imgur.com/bSvlk6d

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


【解决方案1】:

如果您已经使用Settings.Default,请尝试按名称访问设置,而不是按字符串键访问设置。

txtUsername.Text = Properties.Settings.Default.email_username;
txtAddress.Text = Properties.Settings.Default.physical_address;

【讨论】:

    【解决方案2】:

    很抱歉浪费您的时间,但我发现了问题。

    一开始我以为Application不是在保存数据,后来查看user.config发现数据保存正确。

    我忘记了我正在使用Program.cs 中的设置进行操作。不幸的是,代码有问题,现在一切正常!

    谢谢!

    【讨论】:

    • 我仍然建议您按属性名称而不是按我的回答中建议的键访问设置 - 更不容易出错。
    猜你喜欢
    • 2010-12-22
    • 1970-01-01
    • 2011-03-31
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多