如题:
窗体保存指——我的Winform程序运行后,点击“保存”,然后整个窗体内的东西(包括框架、控件、事件、还有属性等等)全部写入数据库。窗体还原指——点击打开,就从数据库中把刚刚保存的那些东东拿出来,然后用这些东西还原成一模一样的窗体。怎么实现?给个思路也行啊!
窗体保存指——我的Winform程序运行后,点击“保存”,然后整个窗体内的东西(包括框架、控件、事件、还有属性等等)全部写入数据库。窗体还原指——点击打开,就从数据库中把刚刚保存的那些东东拿出来,然后用这些东西还原成一模一样的窗体。怎么实现?给个思路也行啊!
解决方案 »
- FileSystemWatcher监控文件的问题
- 求C#开发的海康威视4004HC的demo
- 英文OS环境下,ASP.net调用COM,中文全部为乱码,但在同一台机器上asp读是正常的,有没有人帮忙解决下?
- [求助]一个简单的问题,关于数据格式化
- 【求助】C# 打印窗体 如何做到真正打印form窗体内容
- 如何将Excel的Book1中Sheet1的数据复制到另一工作薄Book2中?
- 如何让DateTimePicker显示(当前日期加一年)啊?
- 如何实现c#打开一text文件,修改后用.xls保存(需保存图片)?
- 使用用户控件的问题
- 请帮助我编一个用C语言编著的五子棋源程序,我不知道该从何手?
- .net2005中怎麼單擊dataGridView1一行時讓一整行得到焦點??????
- 在winForm里,treeView中设置为checkbox,但是有些节点的checkbox希望设置为灰色,或者checkbox不可见也行
不知道有没有什么模式能实现搂主要的功能,对设计模式不太熟,楼主参考楼下高论
**********************
这个的确没搞懂。关键是,我还不知道这个类要写多大的规模,因为我的窗体运行后,窗体里有多少孔件、控件的类型、数量、属性(同种控件的属性都可能不一致)等等都可能变化。这个该怎么写?有办法写吗?
如果你的窗口比较简单就文本框,按钮等常规控件还好说 子要循环判断控件的位置,text,背景色什么的放到一个 什么hastable 或 类里就可以,
还原的时候利用反射找控件名 把数据还原回去如果还有一些,DataGrid listView treeView 或一些第3方控件
那就郁闷了,尤其是DataGrid 和一些第3方的控件
子对象不说一万业有一千而且很多是 private 的字段,你想设置回去也难而且有些时候不见得都是控件还有其他控件如 WebService 客户端,一些常量等
都保存是不可能的子可以有选择的保存。
如你所说,控件的类型也不会太多。主要是文本框、图片框、Panel等6种左右,都不会太复杂吧。
子不过没现成的罢了!
循环窗口全部的 控件然后以类似的方式保存成xml
树形
<TestForm>
<ctls>
<TextBox name="textBox1"><Text>文本1<Text></TextBox>
<TextBox name="textBox2"><Text>文本2<Text></TextBox>
<Panel name="panel1">
<ctls>
<CheckBox name="chkBox1"><Checked>true</Checked></CheckBox>
<CheckBox name="chkBox2"></CheckBox>
<ctls>
</Panel>
<Button name="button1"><Text>确定<Text></Button>
<Button name="button2"><Text>取消<Text></Button>
<ctls>
</TestForm>
我老大就做了一个这样的东西,他是用XML保存所有界面信息,而事件全是事先定义好的,然后解释。对于某写东西也用了即时编译。他的大体框架是改造sharpdevelop (http://www.icsharpcode.net/OpenSource/SD/Default.aspx)