窗体间数据的实时传递.doc_第1页
窗体间数据的实时传递.doc_第2页
窗体间数据的实时传递.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

相信大家在做系统的时候,很多人都遇到需要在两个不同的窗体间传递数据的情况,例如可以单独打开一个窗口,用于显示代码名称对照关系,通过双击该窗体的数据,我们希望这个数据传递到另一个窗体中。如何实现两个窗体间数据的实时传递呢?其实很简单,只需要简单地运用事件通知就可以了。首先做如下假设:有两个窗体MainForm,SubForm,我们希望SubForm向MainForm实施传递数据,开发语言就用.net C#1、新建一个工程,并添加两个窗体,分别命名为frmMain,frmSub2、在frmMain上添加一个文本框和一个按钮,分别命名txbxReceiveMessageContainer和btnOpenSubForm3、在frmSub上添加一个文本框和一个按钮,分别命名txbxSendMessageContainer和btnSendMessage4、在工程中添加一个类文件,取名为Global,用于放置一些公用代码做好了以上准备工作,下面开始编写代码,为方便大家阅读,我把关键代码直接贴上来。/Global.cs public class SubFormEventArg : System.EventArgs/事件数据,其中构造函数中的参数是object类型,也就是说我们可以在两个窗体间传递任何数据,如数组,字符串,结构体以及其他任何复杂的数据形式 private readonly object myObj; public SubFormEventArg (object myObj) this.myObj = myObj; public object MyMessage get return myObj; public class FormHandel public static int myFormHandel = 1, 2 ;/根据需要而定,如果是在三个窗体间传递数据的话,可以定义三个数据1,2,3 public delegate void MessageChangeEventHander(object sender, SubFormEventArg e);/很关键,用于两个窗体间互通消息 /frmMain.cs在frmMain构造函数中添加:FormHandel.myFormHandel0 = (int)this.Handle;添加消息处理函数,即怎么处理frmSum传递过来的数据public void OnMessageChange(object sender, Form2EventArg e) /处理消息(e.MyMessage)的代码,值得注意的是,由于e.MyMessage是object类型,此处需要根据你传递的数据的类型进行拆箱(即我们通常所说的强制转换),例如如果传递的是字符串数组,则可以string message = (string)e.MyMessage,然后再处理message this.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(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论