窗体间数据的实时传递

窗体间数据的实时传递

ID:46465408

大小:72.00 KB

页数:3页

时间:2019-11-24

窗体间数据的实时传递_第1页
窗体间数据的实时传递_第2页
窗体间数据的实时传递_第3页
资源描述:

《窗体间数据的实时传递》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、相信大家在做系统的时候,很多人都遇到需要在两个不同的窗体间传递数据的情况,例如可以单独打开一个窗口,用于显示代码名称对照关系,通过双击该窗体的数据,我们希望这个数据传递到另一个窗体中。如何实现两个窗体间数据的实时传递呢?其实很简单,只需要简单地运用事件通知就可以了。首先做如下假设:有两个窗体MainForm,SubForm,我们希望SubForm向MainForm实施传递数据,开发语言就用.netC#1、新建一个工程,并添加两个窗体,分别命名为frmMain,frmSub2、在frmMain上添加一个文本框和一个

2、按钮,分别命名txbxReceiveMessageContainer和btnOpenSubForm3、在frmSub上添加一个文本框和一个按钮,分别命名txbxSendMessageContainer和btnSendMessage4、在工程中添加一个类文件,取名为Global,用于放置一些公用代码做好了以上准备工作,下面开始编写代码,为方便大家阅读,我把关键代码直接贴上来。//Global.cspublicclassSubFormEventArg:System.EventArgs//事件数据,其中构造函数中的参数

3、是object类型,也就是说我们可以在两个窗体间传递任何数据,如数组,字符串,结构体以及其他任何复杂的数据形式{privatereadonlyobjectmyObj;publicSubFormEventArg(objectmyObj){this.myObj=myObj;}publicobjectMyMessage{get{returnmyObj;}}}publicclassFormHandel{publicstaticint[]myFormHandel={1,2};//根据需要而定,如果是在三个窗体间传递数据的话

4、,可以定义三个数据{1,2,3}}publicdelegatevoidMessageChangeEventHander(objectsender,SubFormEventArge);//很关键,用于两个窗体间互通消息//frmMain.cs在frmMain构造函数中添加:FormHandel.myFormHandel[0]=(int)this.Handle;添加消息处理函数,即怎么处理frmSum传递过来的数据publicvoidOnMessageChange(objectsender,Form2EventArg

5、e){//处理消息(e.MyMessage)的代码,值得注意的是,由于e.MyMessage是object类型,此处需要根据你传递的数据的类型进行拆箱(即我们通常所说的强制转换),例如如果传递的是字符串数组,则可以string[]message=(string[])e.MyMessage,然后再处理messagethis.txbxReceiveMessageContainer.Text=e.MyMessage.ToString();}在btnOpenSubForm的click事件中添加frmSum的调用函数:fr

6、mSubfrm=newfrmSub();frm.MessageChange+=newMessageChangeEventHander(OnMessageChange);//很重要,用于注册消息处理函数frm.Show();//frmSub.cs定义一个窗体级事件变量publiceventMessageChangeEventHanderMessageChange;在btnSendMessage的click事件中添加消息发送代码MessageChange(this,newSubFormEventArg(this.tx

7、bxSendMessageContainer.Text));ok,所有工作完毕,编译,运行,ok。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。