c# winform 窗体之间的传参

时间:2023-03-08 20:18:51
c# winform 窗体之间的传参

说起winform程序中窗体之间的参数互传,大家找度娘会找到很多方法:

  1、在窗体类中创建全局变量,类型为公开、静态的;

  2、在窗体类中定义狗仔函数;

  3、通过实践来船体参数;

  这三种思路完全来自于霖小屋的c# winform窗体之间传递参数问题总结,大家可以看看他的这篇博客学习学习。

  下面我要给大家说的一种方法相对来说有点繁琐,但对于winform程序初学者来说绝对的受用。之前在度娘上寻找winform窗体的显示与隐藏受到点启发,本来winform程序创建新的窗体的时候是不带参数的,为了能够在关闭这个窗体打开主窗体,在创建新的窗体时传入主窗体变量,在新建的窗体中用一个变量接收,这样新窗体中的变量就相当于主窗体对象,就可以访问主窗体类中定义的方法和控件的值及属性,也可以做进一步的修改,这种方法传值不是指主窗体中的某个变量或值,而传值是在创建窗体的时候传主窗体类对象,可能你们还听得云里雾里的,给大家附上一段代码,大家就能明白了。

        private Form1 returnForm1 = null;

         public Form2(Form1 F1)
{
InitializeComponent();
// 接受Form1对象
this.returnForm1 = F1;
} private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
//在创建窗体Form2是传入Form1类对象,这样就可以访问主窗体Form1中的方法 和以及控件的值和属性
this.returnForm1.Visible = true; //恢复Form1
returnForm1.DateViewDetails();//加载运行线路信息
returnForm1.showStation();//首末站数据加载
returnForm1.ComboBoxDetails();//掉电恢复区comboBox数据加载
returnForm1.showStation();//显示首末站
}