C# 复选框未正确读取设置
问题是: 在我的设置中,有两个布尔值,分别称为check1_状态和check2_状态。当窗体加载时,它们应该控制我的两个复选框 以下是表单加载时的代码:C# 复选框未正确读取设置,c#,checkbox,settings,C#,Checkbox,Settings,问题是: 在我的设置中,有两个布尔值,分别称为check1_状态和check2_状态。当窗体加载时,它们应该控制我的两个复选框 以下是表单加载时的代码: checkBox1.Checked = Properties.Settings.Default.check1_State; checkBox2.Checked = Properties.Settings.Default.check2_State; 有了这段代码,将只读取复选框1。如果我评论第一行,第二行就可以了 我设法让它工作,以便在窗体加
checkBox1.Checked = Properties.Settings.Default.check1_State;
checkBox2.Checked = Properties.Settings.Default.check2_State;
有了这段代码,将只读取复选框1。如果我评论第一行,第二行就可以了
我设法让它工作,以便在窗体加载时放置计时器,但我希望做得正确。这表明复选框实际上可以读取设置,但如果同时请求两个或多个设置,则显然不起作用
知道为什么会发生这种情况吗?您可以使用表单级别标志来保持加载初始数据的状态
bool flag = false;
仅当上述标志为真时,才保存check1_状态和check2_状态
在表单加载事件中,从属性加载数据后设置标志
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;
}
}
您是否正在检查已更改的事件处理程序中写入设置?我是。同样,如果.Checked=.check1_状态;是在计时器中使用的,如果将其输入到表单中,它就不起作用。加载处理程序。将调试好的放置在checkBox2上。Checked=Properties.Settings.Default.check2_状态;并查看状态设置是否正确。如果设置正确,则应注册checkbox2的选中更改事件。查看设置后从何处更改。我怀疑它在你的代码中的其他地方被更改了。工作起来很有魅力!非常感谢你。