使用委托进行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());
        }
posted @ 2020-02-17 09:54  少年。  阅读(857)  评论(2编辑  收藏  举报