定义:事件是对象再外界“刺激”下发生的事情,而对外界提供的一种信息机制。
事件的两个参与者:
发送者(Sender):即对象本身,当本身的状态变化时,触发事件,并通知事件接受者;
接受者(Receiver):用来处理事件,再事件发送者触发的个事件后,会自动执行的内容。
主窗体代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Event
{
//第一步:声明委托,关键字delegate
public delegate void SendMessage(string msg);
public partial class Form1 : Form
{
//第二步:定义事件,以委托为基础,关键字event,SendMessageEvent为事件变量
public event SendMessage SendMessageEvent;
public Form1()
{
InitializeComponent();
//第五步:将事件本身与响应者之间进行关联
Form2 form2 = new Form2();
Form3 form3 = new Form3();
SendMessageEvent += new SendMessage(form2.EventResponse);
SendMessageEvent += new SendMessage(form3.EventResponse);
form2.Show();
form3.Show();
}
private void Form1_Load(object sender, EventArgs e)
{
}
//发送信息
private void button1_Click(object sender, EventArgs e)
{
//第三步:激发的事件
SendMessageEvent(this.textBox1.Text.Trim());
}
}
}
Form2窗体代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Event
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
//第四步:定义事件响应的方法
public void EventResponse(string msg)
{
this.textBox1.Text = msg;
}
private void Form2_Load(object sender, EventArgs e)
{
}
}
}
Form3窗体代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Event
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
//第四步:定义事件响应的方法
public void EventResponse(string msg)
{
this.textBox1.Text = msg;
}
private void Form3_Load(object sender, EventArgs e)
{
}
}
}