比如,我在软件界面上的Checkbox,哪些勾选了,哪些没有勾选,或者textbox都写了什么字
这些信息如何保存,就是在下次程序打开的时候,点一下按钮,这些信息就出来了是不是要保存到数据库,有个Dataset按钮,可以用不?

解决方案 »

  1.   

    思路:
    1. 构造一个类 OperationRecorder,为其添加一个事件:OnOperationHappened()。
    2. 把这个事件利用delegate绑定到界面上所有控件中你关心的事件上。
    3. 在事件内部,利用Sender或者EventArgs取出控件中你关心的属性,利用这些属性构造成类似下面这样的信息:[textBox1][Text]: xxxxxx
    把上面的信息采取恰当的方式予以保存,比如数组之类的。
    4. 在程序结束前,把数组写入文件。程序运行时,从文件中读取数据还原成数组。点击按钮后,显示数组内的串的内容。
      

  2.   

    推荐挂在Validating这个事件上,默认情况下好象Control的CausesValidation是true。
      

  3.   


    1、自己写一个类,把界面上的结果和类属性一一对应,保存的时候将界面结果赋值给类属性,然后简单的将该类
       XML序列化即可,保存在磁盘或sql中.2、打开界面界面之前,反序列化该类,将结果付给界面元素即可...
      

  4.   

    因为是为了下一次运行程序做准备,只要保存最后操作的结果就可以了,程序没退出前,就保存到内存里,以提高运行效率,并且,使用软件者不一定只选择一次checkbox或只填写一次textbox,每一次操作,对应修改内存里操作信息一次
    class OparationRecorder
            {
                public string ControlName;
                public string ControlContent;
                public OparationRecorder(string name, string content)
                {
                    ControlName = name;
                    ControlContent = content;
                }
            }
    假如你有一个checkbox和一个textbox
    在checkbox的Click事件里,添加语句:OparationRecorder o2 = new OparationRecorder("checkbox1", "true");  //这里"true"为了统一处理(和textbox一致),是个字符串,存储的也是字符型,程序下一次运行,从文件或数据库提出来转化下即可在textbox的change事件里添加代码:OparationRecorder o1 = new OparationRecorder("text1", "张三");这样用户每操作一次,就更新一次信息,总代表最新操作信息
    当程序运行完了时,把o1和o2里的内容保存到文件或数据库
    下一次运行程序时,读取文件或数据库里数据,并初始化程序相关控件