在表单之间切换时保持复选框的状态

时间:2012-12-03 21:21:43

标签: c# winforms checkbox

我有form1,它有一个打开form2的命令按钮,然后有一些复选框。当我运行程序form1首先出现,我点击命令按钮转到form2,然后我点击其中一个复选框,如果我回到form1然后再回到form2复选框正在将其状态更改为未选中再次。我如何将其状态保持在“已检查”状态? 我唯一的代码是来自from1。

的命令按钮
private void button3_Click(object sender, EventArgs e)
{
    this.Hide();
    Form4 form4 = new Form4();
    form4.Show();       
}

1 个答案:

答案 0 :(得分:1)

考虑此类问题的最佳方法是将UI(“视图”)与应用程序正在编辑的数据的状态(“模型”)分开。

将状态存储在例如两个表单都可用的类实例中。将每个表单中的复选框的状态绑定到表示该类实例中已检查状态的布尔属性的状态。

根据您使用的UI技术,可以更好或更少地支持将模型属性绑定到表示该属性值的UI元素。在WPF和Silverlight中有很好的支持。 WinForms不提供开箱即用的良好支持,但有第三方库可以增加不错的支持,或者您可以手动将复选框的状态连接到使用事件处理程序支持该状态的布尔属性的状态。

这是称为MVC或模型 - 视图 - 控制器的模式的一部分。