您的位置:首页 > 其它

委托、窗体传值、多播委托

2015-09-23 15:20 344 查看
窗体传值例子说明:

1, 在窗体1中定义方法ShowMsg,带一个string类型的参数。通过点击button1按钮,将该方法传给窗体2

2, 窗体2中声明一个委托DelTest,与ShowMsg方法有相同的签名。同时声明Form2的构造函数Form2(DelTest del);接收从窗体1传过来的方法。

3, 点击窗体2中的button按钮,将textbox的值作为参数传给ShowMsg方法

窗体1:

public partial
class Form1 :
Form
{
publicForm1()
{
InitializeComponent();
}

private
voidbutton1_Click(object sender,
EventArgs e)
{
Form2frm2 =
new Form2(ShowMsg);
frm2.Show();
}

voidShowMsg(string str)
{
label1.Text = str;
}
}

窗体2:

//声明一个委托
public
delegate void
DelTest(string str);
public
partial class
Form2 : Form
{
public
DelTest_del;
publicForm2(DelTest del)
{
this._del= del;
InitializeComponent();
}

private
voidbutton1_Click(object sender,
EventArgs e)
{
_del(textBox1.Text);
}
}

多播委托

public delegate
void DelTest();
class
Program
{
static
voidMain(string[] args)
{
DelTest del= T1;
del += T2;
del += T3;
del+= T4;
del -= T3;
del -= T1;
del();
Console.ReadKey();
}

public
static voidT1()
{
Console.WriteLine("我是T1");
}
public
static voidT2()
{
Console.WriteLine("我是T2");
}

public
static voidT3()
{
Console.WriteLine("我是T3");
}
public
static voidT4()
{
Console.WriteLine("我是T4");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: