C#应用程序设置和如何读取
我想存储和读取一些用户可以更改的设置。我通过项目的属性遵循了前面提到的方法,但是我看到还有一个名为“Settings.Settings”的文件。这个文件是空的。这个文件不需要吗?我可以删除它吗 我的另一个问题是如何读取设置。例如,我有一个名为“InitialSave”的布尔设置。使用此选项会导致错误“运算符”==”无法应用于“object”和“bool”类型的操作数。我可以直接从设置中读取,还是应该在启动时声明每个设置C#应用程序设置和如何读取,c#,winforms,application-settings,C#,Winforms,Application Settings,我想存储和读取一些用户可以更改的设置。我通过项目的属性遵循了前面提到的方法,但是我看到还有一个名为“Settings.Settings”的文件。这个文件是空的。这个文件不需要吗?我可以删除它吗 我的另一个问题是如何读取设置。例如,我有一个名为“InitialSave”的布尔设置。使用此选项会导致错误“运算符”==”无法应用于“object”和“bool”类型的操作数。我可以直接从设置中读取,还是应该在启动时声明每个设置 Properties.Settings.Default["Init
Properties.Settings.Default["InitialSave"] == true
右键单击此项并选择“使用..设置设计器打开”: 或者获取项目的属性并单击左侧的“设置”。然后你会看到: 您将一些设置和类型放入: 您可以在代码中写入
Properties.Settings.Default.
,然后可以看到您的设置:
可以将它们作为指定类型的属性进行读写
您甚至可以将它们绑定到控件:
切换控件勾选状态将改变proeprities.Settings.Default.IsMinimized
注意:只能更改/保存用户范围的设置。应用程序范围设置保存在YourExeName.config文件中,并通过使用文本编辑器编辑该文件进行更改。用户范围设置保存在其他位置(在用户文件夹中),可以在运行时修改和保存,以便在下次启动程序时保留该值
编辑: 好的,你说你可以在两个地方打开设置;我无法通过以下步骤实现这一点(使用.NET core,因为Wolle的答案声称core不同;我也无法支持该说法):
- 新项目.NET核心Winforms:
- 转到项目..设置“项目不包含设置文件,请单击以创建一个”,等等:
- 切换到项目属性中的其他选项卡,例如:
- 右键单击/打开
文件。见此:settings.settings
- 尝试在“项目属性”中返回,请参见以下内容:
- 添加一些设置:
- 在代码中访问它
不幸的是,@Caius Jard的答案有点过时,但是对于.NET之前的核心环境来说,这是一条必经之路 对于当前的.NET5框架,最有用的源代码应该是 如果要将设置存储在文件中,请查看
谢谢那么Settings.Settings和项目属性下的Settings选项卡之间有什么区别呢?没有区别。事实上,如果你像我描述的那样用右键点击打开它,然后尝试通过project Proeprities打开它,你会得到一个错误“这已经在其他地方打开了”。嗯,就是这样。事实并非如此。我可以打开Setting.settings并打开项目属性下的“设置”选项卡。在属性下已经有一个DatabaseConnectionString。这不会显示在Settings.Settings中。所以他们看起来不一样,有点不对劲。请用新项目再试一次。请参阅对我的答案的编辑也适用于WinForms.NET core(请参阅对我的答案的编辑)
var appSettings = ConfigurationManager.AppSettings;
// read
var foo = appSettings["bar"];
// write
if (settings[key] == null)
{
settings.Add(key, value);
}
else
{
settings[key].Value = value;
}