是否有更有效的方法来保存复选框的选中状态?

问题描述 投票:-1回答:2

所以我正在制作一个清单应用程序,我想在其中包含一个“保存”按钮来保存所有复选框的选中状态(在Visual Studio 2019和c#中]。现在,我有65个复选框(每个任务一个),但是将来还会有很多。

所以,按照说明,我去了项目的properties,去了[[Settings,并创建了一个类型为“ bool”,范围为“ user”且值为“ False”的new setting。然后,我创建了我的GetSettings()函数,如下所示:

public void GetSettings() { checkBox1.Checked = Properties.Settings.Default.CheckBox1; }
和类似的SaveSettings():

public void GetSettings() { Properties.Settings.Default.CheckBox1 = checkBox1.Checked; Properties.Settings.Default.Save(); }

然后我将

SaveSettings()和GetSettings()添加到SaveButton_Click,并且还将GetSettings()添加到Form1_Load

这显然像是一种魅力,对于带有5个复选框的更简单的表单,我不介意为每个表单添加一个新设置并在函数中声明它,但是具有65个以上的复选框,工作变得有些丰富。

我试图用

foreach循环

遍历复选框,但是显然没有按预期工作;现在我已经尝试了很多事情,但我不记得了。我已经搜索了很多东西,却没有找到一种方法来做,也许我不知道要寻找什么,因为我是一个初学者。无论如何,有人知道一种更有效的方法来保存复选框的状态并在下次打开应用程序时加载吗?只要可行,任何方式都行(另外,我可能会学到新东西)。

谢谢您,如果您需要更多信息,或者我没有清楚地说明自己,我会很乐意答复!

编辑:我在“流布局面板”中拥有所有复选框,而我尝试遍历每个框的是:

foreach (CheckBox chk in flowLayoutPanel1.Controls) { Properties.Settings.Default.CheckBox1 = chk.Checked; Properties.Settings.Default.Save(); }

以及获取此类设置的方法:

foreach (CheckBox chk in flowLayoutPanel1.Controls) { chk.Checked = Properties.Settings.Default.CheckBox1; }

但是这样做是当我单击“保存”按钮时将它们全部选中或取消选中。也许我做错了!

因此,我正在制作一个清单应用程序,我想在其中包含一个“保存”按钮以保存所有复选框(在Visual Studio 2019和c#中)的选中状态。现在,我有65个复选框(每个任务一个),...

c# visual-studio winforms save settings
2个回答
0
投票
您可以使用ResXResourceWriter和-Reader类

0
投票
也许您可以尝试将设置保存在App.config文件中。
© www.soinside.com 2019 - 2024. All rights reserved.