C#中不同窗体之间的数据传递
2011-08-29 16:38
344 查看
学习C#不久,对于C#不同窗体之间的数据传递,总是处理得不好,今天,通过上网查找资料,小有心得。
C#之间不同窗体之间的数据传递,无非有两种方式:
数据库或文件。这是最直接的方式,需要传递的数据存储在数据库、配置文件、或者xml文件中,任何能够访问此数据库或文件的窗体均能对数据进行访问,解决了数据之间的传递问题。
参数传递。参数传递有几种情况,分别为:(假设父窗口为frmMain, 子窗口分别为frmSub1, frmSub2)
方式1:父窗口向子窗口传递参数。这种情况非常常见,也最简单,假设父窗口frmMain要向子窗口frmSub1传递数据dataFromMain并在frmSub1中进行处理,则只需在子窗口中定义一个函数如:public typeReturn DoHandler(dataFromMain)即可,其调用模式为:
frmSub1 frmsub = new frmSub1(); frmsub.DoHandler(dataFromMain);
方式2:子窗口向父窗口传递参数。这种情况稍微复杂,子窗口要向父窗口传递数据,那么必须在子窗口中保留父窗口的指针,即将父窗口作为子窗口的一个数据成员。若子窗口frmSub1要向frmMain中传递数据,则frmSub1的类定义为:
在构造子窗口的时候,其形式为:frmSub1 frmsub1 = new frmSub1(this),这里的this即是主窗口。
方式3:子窗口之间传递参数。若父窗口是容器,则只需将子窗口间的传递数据的控件声明为public即可;若不是,则可以参考方式2,通过在主窗口中定义变量来传递子窗口之间的数据。
C#之间不同窗体之间的数据传递,无非有两种方式:
数据库或文件。这是最直接的方式,需要传递的数据存储在数据库、配置文件、或者xml文件中,任何能够访问此数据库或文件的窗体均能对数据进行访问,解决了数据之间的传递问题。
参数传递。参数传递有几种情况,分别为:(假设父窗口为frmMain, 子窗口分别为frmSub1, frmSub2)
方式1:父窗口向子窗口传递参数。这种情况非常常见,也最简单,假设父窗口frmMain要向子窗口frmSub1传递数据dataFromMain并在frmSub1中进行处理,则只需在子窗口中定义一个函数如:public typeReturn DoHandler(dataFromMain)即可,其调用模式为:
frmSub1 frmsub = new frmSub1(); frmsub.DoHandler(dataFromMain);
方式2:子窗口向父窗口传递参数。这种情况稍微复杂,子窗口要向父窗口传递数据,那么必须在子窗口中保留父窗口的指针,即将父窗口作为子窗口的一个数据成员。若子窗口frmSub1要向frmMain中传递数据,则frmSub1的类定义为:
public frmMain; public class frmSub1 { frmSub1's attribute; frmMain mfrmMain; public frmSub1(frmMain frmmain) { initiate_attribute(); mfrmMain = frmmain; } }
在构造子窗口的时候,其形式为:frmSub1 frmsub1 = new frmSub1(this),这里的this即是主窗口。
方式3:子窗口之间传递参数。若父窗口是容器,则只需将子窗口间的传递数据的控件声明为public即可;若不是,则可以参考方式2,通过在主窗口中定义变量来传递子窗口之间的数据。
相关文章推荐
- C#.NET常见问题(FAQ)-如何在不同窗体之间传递值
- C#不同窗体间通信,数据传递
- C#窗体之间传递数据
- C#中窗体之间的数据传递
- 在不同Activity之间传递数据
- Vue.js 实现表单数据参数传递,以及不同独立按钮之间的参数传递
- c# winform窗体之间传递参数问题总结
- 不同Activity之间传递数据
- C#中窗体间传递数据的几种方法
- Android判断网络状态是否断开+Android完全关闭应用程序+ 本文讲述了Android中不同Activity之间的数据传递 — Bundle对象的实现(-)+Android中Bundle的使用示例
- [转]如何在C#用WM_COPYDATA消息来实现两个进程之间传递数据
- 总结C#中窗体间传递数据的几种方法
- 如果在C#用WM_COPYDATA消息来实现两个进程之间传递数据
- C#中窗口之间传递数据几种方法
- [转帖]在C#用WM_COPYDATA消息来实现两个进程之间传递数据
- 【Android】利用Bundle在不同Activity之间传递数据
- [C#]不同窗体之间的传值
- C# 两个类之间传递数据
- 关于winform中,两个窗体之间传递数据
- Android笔记三.不同Activity之间的传递数据(Bundle对象的使用)