`
coolsooner
  • 浏览: 1315059 次
文章分类
社区版块
存档分类
最新评论

代理实现两个窗口之间的通讯

 
阅读更多
namespaceDelegateTest
{
publicpartialclassForm1:Form
{
publicdelegatevoidShowTextValue(stringtext);//代理
publiceventShowTextValueshowText;//代理事件
publicForm1()
{
InitializeComponent();
//把事件加入事件队列中
showText+=newShowTextValue(SetText);
}

//开始代理
publicvoidStartDelegate(stringstr){
showText(str);
}

//设置文本框的值
privatevoidSetText(stringstr){
textBox1.Text=str;
}

//textBox1的TextChange事件
privatevoidtextBox1_TextChanged(objectsender,EventArgse)
{
showText(textBox1.Text);
}


       privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse)
{
//在关闭窗口时去掉代理事件,因为没加载一次窗体就代理了SetText方法,
//如果不去掉,这个窗口开几次,SetText方法就会执行几次
//事件队列中的方法会按顺序执行
showText-=newShowTextValue(SetText);
        }
    }
}
 
namespaceDelegateTest
{
publicpartialclassForm2:Form
{
Form1form1;
publicForm2()
{
InitializeComponent();
}

privatevoidSetText(stringtext)
{
textBox1.Text=text;
}

privatevoidbutton1_Click(objectsender,EventArgse)
{
form1=newForm1();
form1.showText+=newForm1.ShowTextValue(SetText);
form1.Show();
}

privatevoidtextBox1_TextChanged(objectsender,EventArgse)
{
form1.StartDelegate(textBox1.Text);
}

privatevoidForm2_FormClosing(objectsender,FormClosingEventArgse)
{
form1.showText-=newForm1.ShowTextValue(SetText);
}
}
}
namespaceDelegateTest
{
publicclassControl
{
publicdelegatevoidSomeHandler(objectsender,EventArgse);
publiceventSomeHandlersomeevent;

publicControl(){
this.someevent+=newSomeHandler(PrintStr);
this.someevent+=newSomeHandler(PrintInt);
}
publicvoidReadStr(){
EventArgse=newEventArgs();
someevent(this,e);
}

privatevoidPrintStr(objectsender,EventArgse)
{
MessageBox.Show("我就是陈太汉!,陈晓玲就是我老婆","代理");
}

privatevoidPrintInt(objectsender,EventArgse)
{
MessageBox.Show("你好,我就是陈太汉!,陈太汉就是我,哈哈哈哈哈","代理");
}
    }
}
namespaceDelegateTest
{
publicclassContainer
{
Controlcontrol=newControl();

publicContainer(){
control.someevent+=newControl.SomeHandler(DelegateC);
control.ReadStr();
}

privatevoidDelegateC(objectsender,EventArgse)
{

MessageBox.Show("代理陈晓玲","代理");
}
}
}
分享到:
评论

相关推荐

    vc++ 应用源码包_1

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_6

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_2

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_5

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_3

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    java开源包4

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    net邮件收发系统的设计(论文+源代码+开题报告+外文翻译+文献综述+答辩PPT).zip

    多媒体附件,实现代理服务器登录SMTP服务器,以及实现用户可以自主编辑的通讯簿等 等附加功能。而我个人主要负责电子邮件的发送这个功能。 二.编程环境选择 语言选择:Visual Stdio 2003中的C#(C Sharp) 操作系统...

    JAVA上百实例源码以及开源项目

    两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...

    JAVA上百实例源码以及开源项目源代码

    Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...

    vc++ 开发实例源码包

    电子钟的实现,自绘Button、Static的实现,其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大...

    java开源包3

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    DotNet通用类库大全

    提供静态方法来读取这两个文件夹和文件的系统图标。(IconReaderHelper.cs) 图片对象比较、缩放、缩略图、水印、压缩、转换、编码等操作辅助类(ImageHelper.cs) 输入法帮助,全角 转换为半角(ImeHelper.cs) ...

    java开源包1

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包11

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包2

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包6

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包5

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包10

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包8

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

Global site tag (gtag.js) - Google Analytics