WinForms 应用程序设置未分配

WinForms Application settings are not assigning

在 Project > MyProject Properties > Settings 我有一个名为 MyDouble 的应用程序设置,double 类型,范围是 User,默认值为 1.5。

我试着观看它,单步执行整个应用程序,并使用 MessageBoxes 来显示值。我现在已经注释掉了它的所有用途,但我试图设置 class (Form1) 级别变量的地方除外。看起来像这样:

    double myDouble = Properties.Settings.Default.MyDouble;

该值始终为零。如果我 MessageBox myDouble 或应用程序设置结果为零。

某些应用程序设置正在运行。我在 Form1_Shown 事件中调用了两个消息框。一个用途:

    Properties.Settings.Default.MyDouble.ToString() 

其他用途:

    Properties.Settings.Default.MyInt.ToString()

第二个输出正确的值。

此项目是用 C# 编写的 WinForms 应用程序。 使用 Windows 10 和 Visual Studio 2017。 这个项目的表格是从以前的项目中复制过来的,但我认为这不会影响它。上一个项目中的值是相同的。我手动输入了这些应用程序设置。我已经重新检查以确保拼写正确。我删除了安装项目无济于事。清理并重建解决方案...... nada。我还检查了 app.config 文件。我看不出有什么不对。这是:

    <userSettings>
        <MyProject.Properties.Settings>
            <setting name="MyDouble" serializeAs="String">
            <value>1.5</value>
            </setting>
        </MyProject.Properties.Settings>
    </userSettings>

有谁知道为什么 and/or 如何解决这个问题?

我想:出了点问题。

在解决方案资源管理器中,双击 .settings 文件。此文件的默认名称是 Settings.settings。在设置设计器中,找到您的设置的名称 (MyDouble)。每行代表一个设置。

参见:Using Settings in C#

您有:

<setting name="MyDouble" serializeAs="String">

然后你写:

double myDouble = Properties.Settings.Default.MyDouble;

String转换为double...可能是错误的?

查看此页面:Managing Application Settings (.NET) and this answer: What is the best way to store user settings for a .NET application?

试试这个代码:

Properties.Settings.Default.MyDouble = 1.5;
Properties.Settings.Default.Save();

然后试试这个:

var myDouble = Properties.Settings.Default.MyDouble;