1 定义委托
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace t1_Form
{
//定义了一个方法的格式,是一个类型,命名规则与类一样
//public delegate void A1(int a,string b);
public delegate void FormCall(int id);
}
2 在Form1中写事件,在显示窗体按钮的事件中创建Form2对象,为事件绑定方法
在设置label按钮的事件中调用事件执行
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 t1_Form
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//event关键字用于修饰委托对象,表示事件
private event FormCall formCall;
private void Form1_Load(object sender, EventArgs e)
{
}
//显示各个窗体
private void button1_Click(object sender, EventArgs e)
{
Form2 form2=new Form2();
formCall += new FormCall(form2.ShowForm2);
Form3 form3=new Form3();
formCall += form3.ShowForm3;
form2.Show();
form3.Show();
}
private void button2_Click(object sender, EventArgs e)
{
formCall(1);
}
}
}
3 在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 t1_Form
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public void ShowForm2(int id)
{
label1.Text = id.ToString();
}
}
}