C#中窗体的互相访问 小技巧

来源:互联网 发布:c语言delay函数 编辑:程序博客网 时间:2024/05/23 22:04

1、在父窗体中构造子窗体对象时,将父窗体传递过去:

如:FrmSub frm=new FrmSub(this);//this代表父窗体

2、将父窗体中要访问的变量和方法修改为public

3、在子窗体类中定义一个父窗体的全局变量:

如:private dynamic m_parentContainer;//使用dynamic可以动态的识别该变量的类型

4、添加引用Microsoft.CSharp.dll

5、在要访问地方直接通过m_parentContainer.变量名或m_parentContainer.方法名访问即可


 public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            Form2 frm = new Form2(this);            frm.Show();        }        public void Show()        {            textBox1.Text = "我爱北京天安门";        }    }
 private dynamic m_parentContainer = null;        public Form2()        {            InitializeComponent();        }        public Form2(Form1 form1)        {            InitializeComponent();            // TODO: Complete member initialization            m_parentContainer = form1;        }        protected override void OnClosed(EventArgs e)        {            m_parentContainer.Show();        }