C#两窗体(或类)之间传值

 转载:https://blog.****.net/zt15732625878/article/details/79685336

窗体之间大致包含三种方法:

1、通过全局变量

2、通过构造函数传递参数

3、通过委托实现

 

一、通过全局变量

在不同窗体间传值,最专业的做法是新建一个类B.cs,在类B中定义Public static 全局静态变量,使用类A赋给B值,类C再去访问B,实现A->C.反之,也可实现C->B->A.

特点 : 双向传值,实现简单
缺点: 静态变量在类加载的时候分配内存,存储于方法区,一般不会被销毁,在系统不够内存情况下会自动回收静态内存,这样就会引起访问全局静态错误。

二、通过构造函数传递参数

特点 : 单向传值,只能主窗体给子窗体传值,实现简单。

三、使用委托传值

C#两窗体(或类)之间传值

 

C#两窗体(或类)之间传值

特点 :适合子窗体数据实时回传父窗体。

叨叨两句

    项目中父窗体向子窗体传值传的是固定值,用的是第一种方式,子窗体向父窗体传值传的是变化的值,用的是第三种方式,一般第一种最简单,但是安全性、封装性降低,以后多实用第三种委托的方式。