本人不是专家,理解有限,理解不正确的地方请指正。欢迎批评指导
我个人认为委托就是一个函数指针。
使用方法分为3个步骤:
下面以 子窗体 设置 父窗体 的 标题为例 (那么就应该是 子窗体 委托 父窗体 来修改窗体标题)
在 子窗体内 的代码
public partial class Form2 : Form
{
private delegate void DelegateSet(string PFromName); // 参数以及返回类型都与要绑定的函数相同(除泛型委托)
Form1 f = null;
public Form2(Form1 f1)
{
InitializeComponent();
f = f1;
}
private void button1_Click(object sender, EventArgs e)
{
DelegateSet ds = new DelegateSet(f.SetFromTile); //与父窗体的方法绑定
ds("我是按钮1");
}
private void button2_Click(object sender, EventArgs e)
{
DelegateSet ds = new DelegateSet(f.SetFromTile);
ds("我是按钮2");
}
}
父窗体中的代码
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void SetFromTile(string PFromName)
{
this.Text = PFromName;
}
private void 窗体2ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(this);
f2.MdiParent = this; //父窗体被做为容器
f2.Show();
}
}