利用System.EventHandler来实现两个窗体间的事件调用

qiangyu945

qiangyu945

2016-01-29 12:37

利用System.EventHandler来实现两个窗体间的事件调用,利用System.EventHandler来实现两个窗体间的事件调用
在.NET中,窗体也被定义为一个类,所以要想调用窗体中的某个方法,除了要将要调用的方法设为public外,还得创建一个窗体类的实例。然而,在下面这种情况下,就是当我们打开了窗体1(有了此窗体的一个实例),接着打开了窗体2,接下来我们想通过触发窗体2中的某个事件来调用窗体1中的某个方法,而这时我们又不能再创建窗体的新的实例了,怎么办? 解决的办法之一就是利用.NET中提供的System.EventHandler来实现。方法如下: 建立一个有两个Form的WindowsApplication,在Form1和Form2中各添加一个Button,下面我们来添加一些代码。 首先,先在Form2中添加。 在Form2中添加一个System.EventHandler publlic event System.EventHandler CallMessage; 在Form2中Button的Click事件中调用OnClicks private void button1_Click(object sender, System.EventArgs e) { this.CallMessage(sender,e); } 接下来,在Form1中添加。 在Form1中添加一个方法,方法的参数必不可少 public void ShowMessage(object sender, EventArgs e) { MessageBox.Show("another form call this method!"); } 在Form1中Button的Click事件中创建一个Form2的实例,并加入Form2的CallMessage的实现方法 private void button1_Click(object sender, System.EventArgs e) { Form2 frm=new Form2(); frm.CallMessage+=new EventHandler(ShowMessage); frm.ShowDialog(); } 好了,我们的目的就达到了。 写的是简单了些,希望能起到抛砖引玉的作用。
展开更多 50%)
分享

猜你喜欢

利用System.EventHandler来实现两个窗体间的事件调用

电脑网络
利用System.EventHandler来实现两个窗体间的事件调用

两个窗体之间传值

电脑网络
两个窗体之间传值

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

利用自定义事件实现不同窗体间的通讯 -- C#篇

电脑网络
利用自定义事件实现不同窗体间的通讯 -- C#篇

在.NET中利用委托实现窗体间通信

Web开发
在.NET中利用委托实现窗体间通信

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

解析如何用两个栈来实现队列的方法

编程语言 网络编程
解析如何用两个栈来实现队列的方法

快速找出两个Word文档间的差别

word
快速找出两个Word文档间的差别

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JAVA/JSP学习系列之五

JAVA/JSP学习系列之五

PSV《讨鬼传 极》攻薙刀千切延流配魂推荐及视频

PSV《讨鬼传 极》攻薙刀千切延流配魂推荐及视频
下拉加载更多内容 ↓