收藏 分享(赏)

窗体间数据的实时传递.doc

上传人:精品资料 文档编号:10276988 上传时间:2019-10-27 格式:DOC 页数:3 大小:13.69KB
下载 相关 举报
窗体间数据的实时传递.doc_第1页
第1页 / 共3页
窗体间数据的实时传递.doc_第2页
第2页 / 共3页
窗体间数据的实时传递.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

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

2、iner 和btnOpenSubForm3、在 frmSub 上添加一个文本框和一个按钮,分别命名 txbxSendMessageContainer 和btnSendMessage4、在工程中添加一个类文件,取名为 Global,用于放置一些公用代码做好了以上准备工作,下面开始编写代码,为方便大家阅读,我把关键代码直接贴上来。/Global.cspublic class SubFormEventArg : System.EventArgs/事件数据,其中构造函数中的参数是object 类型,也就是说我们可以在两个窗体间传递任何数据,如数组,字符串,结构体以及其他任何复杂的数据形式private

3、 readonly object myObj;public SubFormEventArg (object myObj)this.myObj = myObj;public object MyMessagegetreturn myObj;public class FormHandelpublic static int myFormHandel = 1, 2 ;/根据需要而定,如果是在三个窗体间传递数据的话,可以定义三个数据1,2,3public delegate void MessageChangeEventHander(object sender, SubFormEventArg e);/很关

4、键,用于两个窗体间互通消息/frmMain.cs在 frmMain 构造函数中添加:FormHandel.myFormHandel0 = (int)this.Handle;添加消息处理函数,即怎么处理 frmSum 传递过来的数据public void OnMessageChange(object sender, Form2EventArg e)/处理消息(e.MyMessage)的代码,值得注意的是,由于 e.MyMessage 是object 类型,此处需要根据你传递的数据的类型进行拆箱(即我们通常所说的强制转换) ,例如如果传递的是字符串数组,则可以 string message = (

5、string)e.MyMessage,然后再处理 messagethis.txbxReceiveMessageContainer.Text = e.MyMessage.ToString();在 btnOpenSubForm 的 click 事件中添加 frmSum 的调用函数:frmSub frm = new frmSub();frm.MessageChange += new MessageChangeEventHander(OnMessageChange);/很重要,用于注册消息处理函数frm.Show();/frmSub.cs定义一个窗体级事件变量public event MessageChangeEventHander MessageChange;在 btnSendMessage 的 click 事件中添加消息发送代码MessageChange(this, new SubFormEventArg (this.txbxSendMessageContainer.Text);ok,所有工作完毕,编译,运行,ok。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报