C#事件_Sample_2
事件的拥有者与事件的响应者是分开的情况
+=是事件订阅操作符,左边是事件,右边是事件处理器。
using System; using System.Windows.Forms; /// <summary> /// 事件的拥有者和事件的响应者是分开的情况 /// </summary> namespace _20200328_事件_Sample_2 { class Program { static void Main(string[] args) { Form form = new Form(); Controller controller = new Controller(form); form.ShowDialog(); } } class Controller { private Form form; public Controller(Form form) //自定义一个接受Form类型参数的构造器 { if (form != null) //如果一个对象为空,就无法访问它的事件,所以要判断一下 { this.form = form; //这里可以看出使用this的好处,可以区分出那个是字段,哪个是参数 this.form.Click += this.FormClicked; //为form的Click事件添加事件处理器 } } private void FormClicked(object sender, EventArgs e) { this.form.Text = DateTime.Now.ToString(); } } }