c# winform 窗体之间的传参

学习编程 2017-11-30

说起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();//显示首末站
        }

相关推荐