以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 Dot NET,C#,ASP,VB 』 (http://bbs.xml.org.cn/list.asp?boardid=43) ---- .NET 窗体间传送数据方法谈 (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=61562) |
-- 作者:卷积内核 -- 发布时间:4/19/2008 4:24:00 PM -- .NET 窗体间传送数据方法谈 注: 本文中提到的方法可能会不定期补充,毕竟我不能保证一次性总结那么全面(更何况我一直不擅长总结~~,大家发现什么其它方法或者俺没说清楚的地方给俺说声)。 优点:发挥静态变量的优势,很少代码就能搞定。 class Form1 : Form{ 然后,Form1以及Form2的实例自然可以方便地访问Form1.internalVar这个中间变量了。 方法二:非静态变量法 优点:独立性好。 class Form2 : Form{ 然后主动方只要在传送前获得Form2的实例f2就可以访问f2.internalVar了。 方法三:Tag法 优点:独立性好,不用额外建立新变量。 Form2 f2 = new Form2(); // 或者其它方式获得被动方引用 这样,主动方就可以实现数据的接收和传送。 方法四:窗体所有关系法 优点:具有很高的独立性。 假定已经获得主动方Form2的实例引用f2,假定被动方是当前实例。 f2.Owner = this; 然后,f2内部要想访问被动方的话,只需this.Owner即可获得被动方实例,从而f2内this.Owner.Tag即中间变量。 同样,Form.ShowDialog(Form owner)方法支持自动设定Owner,也可以类似设定窗体所有关系。 方法五:构造函数法(非Form引用) 优点:具有很高的独立性。 class Form2 : Form{ 方法六:构造函数法(Form引用) 注:本法基于非静态变量法、窗体所有关系法以及构造函数法(非Form引用)中双向传送类别。 class Form1 : Form{ 主动方新建一个构造函数,如 class Form2 : Form{ 这样,主动方可以通过访问被动方实例f1.internalVar即可实现访问。 方法七:方法传送法 优点:具有很高的独立性。逻辑功能上具有自身的意义。 class Form2 : Form{ 方法八:Remoting法 优点:可以跨程序集甚至跨域进行数据传送。 方法九:WCF法 优点:同Remoting法。提供简便的分布式通信方式。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
6,531.250ms |