0

我有 form1,它有一个命令按钮,可以打开 form2,然后有一些复选框。当我运行程序时,首先出现form1,然后单击命令按钮转到form2,然后单击其中一个复选框,如果我返回form1并再次返回form2,则复选框将其状态更改为未选中再次。我怎样才能将它的状态保持在“已检查”?我拥有的唯一一段代码来自from1的命令按钮。

private void button3_Click(object sender, EventArgs e)
{
    this.Hide();
    Form4 form4 = new Form4();
    form4.Show();       
}
4

1 回答 1

1

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

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

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

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

于 2012-12-03T21:24:10.273 回答