很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。
下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:
第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如:
publicstatic yourMainWindow pCurrentWin =null;
然后在主窗体构造函数中,给静态成员初始化,如下:
pCurrentWin =this;
那么在子窗体中调用父窗体,可以通过“主窗体类名. pCurrentWin”来操作当前的主窗体。
private yourMainWindow pParentWin =null;
public yourChildWindow( yourMainWindow WinMain )
{
pParentWin = WinMain;
//Other code
}
publicstring ButtonText
{
get{ return btn.Text;}
set{ btn.Text = value;}
}
publicvoid Button_Click()
{
this.btnDConvert.PerformClick();//Execute button click
}
以上介绍的就是C# Winform主窗体和子窗体之间如何相互操作对方的控件