C#不同窗体之间的数据传递

学习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的类定义为:
    • [csharp]  view plain copy
      1. public frmMain;  
      2. public class frmSub1  
      3. {  
      4.     frmSub1's attribute;  
      5.     frmMain mfrmMain;  
      6.   
      7.     public frmSub1(frmMain frmmain)  
      8.     {  
      9.          initiate_attribute();  
      10.          mfrmMain = frmmain;  
      11.     }  
      12. }  

      在构造子窗口的时候,其形式为:frmSub1 frmsub1 = new frmSub1(this),这里的this即是主窗口。
    • 方式3:子窗口之间传递参数。若父窗口是容器,则只需将子窗口间的传递数据的控件声明为public即可;若不是,则可以参考方式2,通过在主窗口中定义变量来传递子窗口之间的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值