如何使用子窗体来调用父窗体的方法?
我在父窗体中写了一个方法,该方法用来删除父窗体菜单下的一个子菜单项,代码如下:
public void DelOtherWindow(string windowname )
{
foreach (object obj in this.OtherWindows.DropDownItems)
{
if (obj.ToString() == windowname)
{
this.OtherWindows.DropDownItems.Remove((ToolStripItem)obj);
break;
}
}
}
子窗体中的代码:
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Main mn = new Main(); //Main为主窗体名
mn.DelOtherWindow(this.Text);
}
当子窗体关闭后,并不能如预期那样将父窗体菜单下的一个子菜单项删除。但是在父亲中调用该方法就可以删除。请问这是怎么回事呀?如何实现我的想法呢?请高手不吝赐教。
------解决方案--------------------把处理的代码都写到主窗体中:
代码段1:
public void DelOtherWindow(string windowname )
{
foreach (object obj in this.OtherWindows.DropDownItems)
{
if (obj.ToString() == windowname)
{
this.OtherWindows.DropDownItems.Remove((ToolStripItem)obj);
break;
}
}
}
代码段2:
Form2 f=new Form2();
f.FormClosed+=new FormClosedEventHandler(Form2_FormClosed);
f.Show(this);//or f.ShowDialog(this);
代码段3:
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
this.DelOtherWindow((object as Form).Text);
}
------解决方案--------------------嘿嘿 是楼上的写法正确
我那样多余了 直接绑定到FormClosed就可以了