对于需要在子窗体中调用父窗体方法的解决方案有两种。简单的一种就是在初始化子窗体的时候传入参数,参数类型为form类型。然后初始化一个父窗体实例并将传入参数赋给该实例。如下代码://设置为全局变量
parentformparentform=newparentform();
publicFrm1(parentformparent)
{
InitializeComponent();
parentform=parent;
}
另一种方法就是使用委托来实现。首先在子窗体中定义一个委托,然后在父窗体初始化子窗体时将子窗体希望调用的父窗体方法绑定在子窗体上。就可以了。代码如下://父窗体form1子窗体form2
//父窗体方法send();
//子窗体方法定义委托
publicdelegatevoidrshowgysmb();//定义委托
publicrshowgysmbshowgys;//定义委托实现类
//调用父窗体中的方法
privatevoiduseparent()
{
if(showgys!=null)
{
showgys();
}
}
//父窗体中的方法:显示子窗体
privatevoidshowchildform()
{
form2f=newform2();
f.showgys+=newform2.rshowgysmb(send);
f.showdialog();
}