C#开发如何Winform实现窗体间相互传值
导读:本文共3510.5字符,通常情况下阅读需要12分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 一、前言我们在做Winform窗体程序开发的时候,会经常遇到窗体之间相互传值。假设有下面的一个场景:一个主窗体和一个子窗体,点击主窗体上面的按钮给子窗体传值,并在子窗体上面显示出来,一般会有如下几种方式实现。二、公共属性我们可以在子窗体里面定义一个公共的属性,然后在父窗体里面给公共属性赋值,这样可以实现窗体之间传值,子窗体代码如下:usingSystem;us... ...
目录
(为您整理了一些要点),点击可以直达。我们在做Winform窗体程序开发的时候,会经常遇到窗体之间相互传值。假设有下面的一个场景:一个主窗体和一个子窗体,点击主窗体上面的按钮给子窗体传值,并在子窗体上面显示出来,一般会有如下几种方式实现。
我们可以在子窗体里面定义一个公共的属性,然后在父窗体里面给公共属性赋值,这样可以实现窗体之间传值,子窗体代码如下:
父窗体代码:
这种方式有一个缺点:属性需要设置为public,不安全。
我们还可以在子窗体里面定义一个方法,通过调用方法传值,子窗体代码如下:
父窗体代码:
这种方式同样也有缺点:属性虽然是private的了,但是方法还是public的。
上述两种方式都是不安全,下面我们使用委托来实现窗体之间传值。
我们在主窗体里面定义一个有参无返回值的委托:
在父窗体里面定义一个委托类型的事件:
委托与事件的关系,事件相对于委托更安全,更低耦合。委托是一个类型,事件是委托类型的一个实例。
这里其实就是在子窗体里面定义一个给控件赋值的方法:
在按钮的点击事件里面触发委托:
上面的代码中使用的是自定义的委托,我们也可以使用.Net 框架里面自带的Action泛型委托:
C#开发如何Winform实现窗体间相互传值的详细内容,希望对您有所帮助,信息来源于网络。