C#窗体之间的相互访问
C#窗体之间的相互访问
1. 通过构造函数传递窗体的引用
子窗访问父窗体,要重写子窗体的构造函数,如下:
public SForm(Form x)
{
InitializeComponent();
PForm = x;
}
{
InitializeComponent();
PForm = x;
}
其中Pform是在子窗体中声明一个成员(Form类)在子窗体的构造函数中从参数中取得了父窗体的引用.这样就能在子窗体中用Pform访问父窗体了.
那么父窗体应该如下这样写:
Form childForm = new SForm(this );
childForm.MdiParent = this;
childForm.Text = "子窗体";
childForm.Show();
childForm.MdiParent = this;
childForm.Text = "子窗体";
childForm.Show();
在构造子窗体时,用this将自身的引用传给子窗体.
至于主窗体调用子窗体的话,什么也不用做,直接可以访问.如上边用childForm
2. 通过静态成员变量
通过窗体类在其自身中创建一个静态成员变量保存窗体的引用,亦可实现窗之间的相互访问.如下:
public static Form TForm = null;//这是一个静态成员
:
:
public MyForm(Form x)
{
InitializeComponent();
TForm = this;
}
:
:
public MyForm(Form x)
{
InitializeComponent();
TForm = this;
}
并且如上,在窗体的构造函数中将自身的引用保存在静态成员Tform中;
那么,就可以在其它窗体中访问这个窗体了,如下:
MyForm.TForm.Text="你好中国";
作者:houfeng
出处:http://houfeng.cnblogs.com
本文版权归作者和博客园共有,未经作者同意请保留此声明.
出处:http://houfeng.cnblogs.com
本文版权归作者和博客园共有,未经作者同意请保留此声明.