WinForms应用程序设置未分配

时间:2017-09-18 14:47:24

标签: c# winforms windows-10 visual-studio-2017 application-settings

在项目>下MyProject属性>设置我有一个名为MyDouble的应用程序设置,双重类型,范围是User,默认值为1.5。

我尝试观看它,逐步浏览整个应用程序,然后使用MessageBoxes显示值。我现在已经注释掉了它的所有用法,排除了我尝试设置类(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>

有没有人有任何想法和/或如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

我认为:出了点问题。

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

请参阅:Using Settings in C#

你有:

.settings

你写道:

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

double myDouble = Properties.Settings.Default.MyDouble; 转换为String ......可能是错的?

请参阅此页:Managing Application Settings (.NET),此答案为:What is the best way to store user settings for a .NET application?

试试这段代码:

double

然后尝试这个:

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