【窗体传值】使用委托实现
步骤:
- 【窗体1】创建【窗体2】时,将输出方法【传参给窗体2】
- 实例传参涉及到【窗体2】的构造函数
- 在【窗体2】声明一个【委托】,存储方法
public delegate void 委托名(方法参数);
- 创建一个该【委托】的字段
public DelSM _del;
- 重写【窗体2】的构造函数,把传参的方法赋值给【_del字段】
- 用【_del字段】来调用【窗体1】的方法,实现【窗体2】的数据,【窗体1】的方法
窗体1
namespace _14_demo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Button1_Click(object sender, EventArgs e)
{
//实例Form2,并且把方法传参给Form2
Form2 form2 = new Form2(ShowMsg);
form2.Show();
}
void ShowMsg(string s)
{
label1.Text = s;
}
}
}
窗体2
namespace _14_demo
{
//声明一个委托,存储方法
public delegate void DelSM(string s);
public partial class Form2 : Form
{
public DelSM _del;
//重写From2的构造函数
public Form2(DelSM del)
{
this._del = del;
InitializeComponent();
}
private void Button1_Click(object sender, EventArgs e)
{
string s = textBox1.Text;
_del(s);
}
}
}