复选框不';无法正确读取设置
本文关键字:读取 设置 复选框 | 更新日期: 2023-09-27 18:20:59
问题如下:
在我的设置中,我有两个布尔值,叫做"check1_State"answers"check2_State"。他们应该在表单加载时控制我的两个复选框。
以下是加载表单时的代码:
checkBox1.Checked = Properties.Settings.Default.check1_State;
checkBox2.Checked = Properties.Settings.Default.check2_State;
使用这段代码,将只读取checkBox1。如果我评论第一行,第二行就可以了。
我设法让它在表单加载时放置计时器,但我想做正确的事情。这表明复选框实际上可以从设置中读取,但如果同时请求两个或多个复选框,显然就不起作用了。
你知道为什么会发生这种事吗?
您可以使用表单级标志来保持加载初始数据的状态
bool flag = false;
如果上述标志为true
,则仅保存check1_State
和check2_State
在表单加载事件中,从属性加载数据后设置标志
checkBox1.Checked = Properties.Settings.Default.check1_State;
checkBox2.Checked = Properties.Settings.Default.check2_State;
flag = true;
示例:
public partial class Form1 : Form
{
bool flag = false;
public Form1()
{
InitializeComponent();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (flag)
{
//save settings
}
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
if (flag)
{
//save settings
}
}
private void Form1_Load(object sender, EventArgs e)
{
checkBox1.Checked = Properties.Settings.Default.check1_State;
checkBox2.Checked = Properties.Settings.Default.check2_State;
flag = true;
}
}