Winform多窗口或多线程传递数据的方法.docxVIP

  • 7
  • 0
  • 约 4页
  • 2017-04-01 发布于重庆
  • 举报

Winform多窗口或多线程传递数据的方法.docx

Winform多窗口或多线程传递数据的方法

前提:假设现在有两个窗口Form1和Form2,Form2是Form1的子窗口,现在需要通过Form2来改变Form1中的内容效果: 方法一:使用Delegate(代理)第一步:在Form2中定义代理并声明实例第二步:在Form1中定义用来代理的函数第三步:在Form1中生成Form2的实例并将代理赋值给Form2中的代理对象第四步:在Form2中调用代理总结:当Form2调用代理对象proEvent时实际上是在调用Form1中的Eventpro函数,由于Eventpro属于Form1,所以赋值成功。方法二:使用自定义事件第一步:自定义事件第二步:在Form2中声明事件对象第三步:在Form1中定义事件回调函数第四步:创建Form2的对象实例,并将事件的回调函数添加到事件上(订阅事件)第五步:在Form2中的按钮上触发事件总结:当第五步事件被触发,事件对象Events会向所有订阅该事件的函数进行触发,而回调函数EventCallBack是Form1的成员,见第三步,所以数据传递成功。利弊分析:第一种方法的优点显而易见,代理参数是可以自定义的,如:voidEventPro(stringMessage),其缺点就是,每一个这样的跨窗口调用都需要在子窗口中定义一个代理对象,并在主窗口中赋值相应的函数。相对来说,我偏向于使用自定义事件,首先,不是所有学过winform的人都接触过这部分内容

文档评论(0)

1亿VIP精品文档

相关文档