项目里,有容器和不同的窗体。有什么好的方法去保存窗体的状态?
例如:TextBox的Text属性,CheckBox的Checked属性等等。

解决方案 »

  1.   

    序列化和反序列化,
    很多控件好像不支持序列化,不过思想差不多,推出的时候用XML保存状态,加载的时候读取状态
      

  2.   

    如果你只想保存页面上每一个控件的值,可以写两个方法,一个SetValue(string controlID,string value),一个string GetValue(Control control)。
    然后在这两个方法里实现所有你页面上用到的类型的控件,如:
    if(control is TextBox)
    {
    ……
    }
    else if(control is CheckBox)
    {
    ……
    }
    如果想保存页面,就迭代Controls属性,用GetValue方法取值,生成一个控件ID,和Value的字典。
    如果想初始化页面,就迭代之前生成的字典,用SetValue方法赋值。
      

  3.   

    可以在窗体里对Controls循环处理,每找一个控件,按类型来保存其属性值到Xml文件中。
      

  4.   

    推荐写到XML文件中,这样不管怎么变,都能知道状态了
      

  5.   


    支持你的思路。至于你说好多控件不支持序列化,其实不是不支持,你让它继承相应的接口就可以了。要充分利用面向对象编程撒。PS:我一般用JSON作序列化与反序列化。