入VS2005后,大家可以发现子窗体操作父窗体不能沿用2003下的方法:把父窗体的空间访问属性由private改为public.IDE已经把控件声明这部分代码隐藏了,所以只有采用更加对象一点的方法。

父窗体与子窗体间的参数传递我采用的步骤如下:
1 父窗体中声明一个静态的父窗体类型的临时对象
        public static frmFather frmFatherTemp;

2 父窗体构造函数中对该变量赋值

        public frmFather()
        {
            InitializeComponent();
            frmFatherTemp = this;
        }


3 把要传递的参数设置为父窗体的一个属性,并设置访问器。访问其的set方法中进行了参数与父窗体控件绑定的操作。

        private string testValue;
       
        public string TestValue
        {
            get
            {
                return testValue;   
            }
            set
            {
                this.testValue = value;
                this.txtFather.Text = value;
            }
        }


4 父窗体参数传递事件中对要传递的参数赋值,并打开子窗体。父窗体的工作到此结束。

            this.TestValue = this.txtFather.Text;
            frmSon frm = new frmSon();
            frm.ShowDialog();


5 子窗体构造函数中设置传递参数与子窗体控件的绑定操作

        public frmSon()
        {
            InitializeComponent();
            this.txtSon.Text = frmFather.frmFatherTemp.TestValue;
        }


6 子窗体回传事件中,对父窗体的临时对象的该参数属性赋值

        public frmSon()
        {
            InitializeComponent();
            this.txtSon.Text = frmFather.frmFatherTemp.TestValue;
        }

ok。一切搞定!

全部代码如下:

frmFather.cs

C#WINFORM窗体传参的最佳实践using System;
C#WINFORM窗体传参的最佳实践
using System.Collections.Generic;
C#WINFORM窗体传参的最佳实践
using System.ComponentModel;
C#WINFORM窗体传参的最佳实践
using System.Data;
C#WINFORM窗体传参的最佳实践
using System.Drawing;
C#WINFORM窗体传参的最佳实践
using System.Text;
C#WINFORM窗体传参的最佳实践
using System.Windows.Forms;
C#WINFORM窗体传参的最佳实践
C#WINFORM窗体传参的最佳实践
namespace winFormParameterPass
}

frmSon.cs
C#WINFORM窗体传参的最佳实践using System;
C#WINFORM窗体传参的最佳实践
using System.Collections.Generic;
C#WINFORM窗体传参的最佳实践
using System.ComponentModel;
C#WINFORM窗体传参的最佳实践
using System.Data;
C#WINFORM窗体传参的最佳实践
using System.Drawing;
C#WINFORM窗体传参的最佳实践
using System.Text;
C#WINFORM窗体传参的最佳实践
using System.Windows.Forms;
C#WINFORM窗体传参的最佳实践
C#WINFORM窗体传参的最佳实践
namespace winFormParameterPass
}

例子程序:
/Files/heekui/winFormParameterPass.rar

以上想法给新手们一点参考,请高手指教。

相关文章:

  • 2022-12-23
  • 2021-10-19
  • 2022-01-08
  • 2021-12-31
猜你喜欢
  • 2021-07-07
  • 2021-11-28
  • 2022-03-04
  • 2021-09-25
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案