使用委托进行winfrom窗体传值
在窗体中先获取到要接受值窗体。然后通过.得到某个空间或者属性,直接赋值,这个需要接收放的窗体属性或者空间必须是public ,是极不安全的一种方式
委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。
委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。
定义委托
委托声明决定了可由该委托引用的方法。委托可指向一个与其具有相同标签的方法
定义了一个参数是string ,无返回值的委托,名为 SendMessageToChildForms。
public delegate void SendMessageToChildForms(string s);
委托实例化
一旦声明了委托类型,委托对象必须使用 new 关键字来创建,且与一个特定的方法有关。当创建委托时,传递到 new 语句的参数就像方法调用一样书写,但是不带有参数。
本质就是实例化了一个事件event
public event SendMessageToChildForms smtcf_event;
执行的方法
public void ToShowGetMessage(string s)
{
this.lb_收到内容.Text=s;
}
绑定方法
在一实例化的一个委托事件上绑定子窗体的具体方法
Parameter frm_child = new Parameter();
smtcf_event += frm_child.ToShowGetMessage;
frm_child.Show();
触发委托
if (smtcf_event != null) //判断委托事件是否为空,如果委托不为空才执行
{
smtcf_event.Invoke("12212");// 可以省略Invoke 简写为smtcf(this.textBox1.Text.Trim());
}