* 问题叙述:
* 如何在一个窗口中访问另一个窗口的成员变量啊?
* 例如:在Form1 中 new 了一个Form2
* 我想在Form2中来访问Form1中的成员变量A
* 该如何写代码啊??
* 最关键的是如何获取Form1的实例.
* 解决方案1:
* 如果是在两个无关的窗体间要实现上述的访问可以使用Form的Owenr属性
*
在
Form1
中添加
:
* Form2 form2 = new Form2();
* this.AddOwnedForm(form2);
*
在
Form2
中添加
:
* Form1 form1 = (Form1)this.Owner; //
直接将已经存在的
Form1
与
form1
关联起来
*
之后就可以适时的访问
Form1
中的
Public
变量了。
*
如果是在
MDI
窗体间要实现上述的访问可以使用
Form
的
ParentForm
属性
*
在
Form1
中添加
:
* Form2 form2 = new Form2();
* form2.MdiParent = this;
*
在
Form2
中添加
:
* Form1 form1 = (Form1)this.ParentForm; //
直接将已经存在的
Form1(MDI
主窗口
)
与
form1
关联起来
*
之后就可以适时的访问
Form1
中的
Public
变量了
*
解决方案
2
:
*
重写
Form
的构造函数。
* 例如:从Form1生成Form3,
* 只要在Form3的构造函数中添加参数,
* 就可以将Form1中的参数传递给Form3了。
* 这种传参的方法只能后向传递,不能Form3传给Form1
* 解决方案3:
* 运用静态变量。
* 在公共变量之前加入static修饰,
* 就可以在不同Form之间相互传递参数,
* 还可以相互修改。
* 这种方法的不足是:
* 如果static修饰的成员过多,将消耗系统资源。
* 解决方案4:
* 运用delegate。
* 这种方法实现技术含量高,建议首先对delegate全面了解。
* delegate型别看起来有点像函数声明,但实际上它所定义的型别用来指向一个或多个函数(函数指针只指向一个函数?)