您的位置:首页 > 编程语言 > C#

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的类定义为:

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,通过在主窗口中定义变量来传递子窗口之间的数据。



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: