利用委托进行窗体传值
本质上是对窗口的构造函数中传入委托.
则先对新窗口进行设置
在新窗体中申明委托对象
申明委托字段,
构造函数中申明委托对象的委托字段
用该委托字段接受窗体构造函数时传入的委托
在新窗口中对委托进行赋值
关键性代码
//窗体1
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(Mess);
frm2.Show();
}
void Mess(string str)
{
label1.Text = str;
}
//窗体2
public delegate void del(string str);
public del _de;
public Form2(del de)
{
this._de = de;
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
_de(textBox1.Text);
}
...
多播委托
多播委托及委托内可以传递多个方法
使用+= -=操作
实例
public delegate void DelTes();
class Program
{
static void Main(string[] args)
{
//委托可以进行加减操作,运行多个方法
DelTes t = T1;
t += T2;
t += T3;
t -= T2;
t();
}
public static void T1()
{
Console.WriteLine("T1");
}
public static void T2()
{
Console.WriteLine("t2");
}
public static void T3()
{
Console.WriteLine("t3");
}
public static void T4()
{
Console.WriteLine("t4");
}
}