首页 > 代码库 > 事件例程
事件例程
该例子演示了A窗口监听B窗口的事件,并作出响应。
B窗口是发布者,A窗口是订阅者。
B窗口代码:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace theEvent{ //自定义事件参数,继承EventArgs基类 public class myEventArgs : EventArgs { public string label; } //发布者 public partial class FormB : Form { public FormB() { InitializeComponent(); } public event EventHandler<myEventArgs> myEvent;//使用自定义泛型委托 //由发布者来触发事件,让订阅者来响应 private void buttonB_Click(object sender, EventArgs e) { myEventArgs args = new myEventArgs(); args.label = "FUCK YOU!"; if (myEvent != null) { myEvent(this, args);//引发事件 } this.Close(); } }}
A窗口代码:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace theEvent{ //订阅者 public partial class FormA : Form { FormB b = null; public FormA() { InitializeComponent(); b = new FormB();//实例化一个发布者的类 //订阅该发布者的事件 b.myEvent += myEventFunction;//监听B窗体事件 } void myEventFunction(object source, myEventArgs e) { labelA.Text = e.label; } private void buttonA_Click(object sender, EventArgs e) { b.Show(); } }}
A窗口为主窗口。点击AAAAA按钮后弹出B窗口。点击BBBBB按钮后,触发事件,A窗口“原值”变成“FUCK YOU!”。
事件例程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。