c#子窗体关闭改变父窗体菜单

时间:2021-07-12 23:51:40
父窗体有个菜单,通过点击菜单打开了子窗体A,同时此菜单项显示选中状态(checked=true),当我关闭子窗体A时怎样才能让父窗体的这个选中状态取消(checked=false)?

5 个解决方案

#1


在子窗体里面定义一个事件委托,父窗体里面订阅该委托,当子窗体关闭的时候触发该事件。

#2


关闭时委托操作父窗体的菜单

#3


父窗体打开子窗体A前,在主窗体代码中指定下处理窗体A关闭事件的处理方法fromA_FormClosed,具体操作在fromA_FormClosed中进行即可

   formA.FormClosed += new FormClosedEventHandler(fromA_FormClosed);

#4


窗体间通信问题!给出个例子,运行调试下你就清楚叻!


Form2中先定义一个delegate
public delegate void returnvalue( int i );
public returnvalue ReturnValue;
form2 中的button按钮代码如下:
private void button1_Click(object sender, System.EventArgs e)
{
    if ( ReturnValue != null )
        ReturnValue( 8 );
}
 
Form1中的button按键如下:
private void button1_Click(object sender, System.EventArgs e)
{
    Form2 temp = new Form2( );
    temp.ReturnValue = new temp.Form2.returnvalue( showvalue );
    temp.Show();
}
 
private void showvalue( int i )
{
    textBox1.Text = i.ToString();
}
 
点击form2的button,form1中的textbox中的值就会相应变化。



#5


引用 1 楼 ttyyadd 的回复:
在子窗体里面定义一个事件委托,父窗体里面订阅该委托,当子窗体关闭的时候触发该事件。


这儿想法不错

#1


在子窗体里面定义一个事件委托,父窗体里面订阅该委托,当子窗体关闭的时候触发该事件。

#2


关闭时委托操作父窗体的菜单

#3


父窗体打开子窗体A前,在主窗体代码中指定下处理窗体A关闭事件的处理方法fromA_FormClosed,具体操作在fromA_FormClosed中进行即可

   formA.FormClosed += new FormClosedEventHandler(fromA_FormClosed);

#4


窗体间通信问题!给出个例子,运行调试下你就清楚叻!


Form2中先定义一个delegate
public delegate void returnvalue( int i );
public returnvalue ReturnValue;
form2 中的button按钮代码如下:
private void button1_Click(object sender, System.EventArgs e)
{
    if ( ReturnValue != null )
        ReturnValue( 8 );
}
 
Form1中的button按键如下:
private void button1_Click(object sender, System.EventArgs e)
{
    Form2 temp = new Form2( );
    temp.ReturnValue = new temp.Form2.returnvalue( showvalue );
    temp.Show();
}
 
private void showvalue( int i )
{
    textBox1.Text = i.ToString();
}
 
点击form2的button,form1中的textbox中的值就会相应变化。



#5


引用 1 楼 ttyyadd 的回复:
在子窗体里面定义一个事件委托,父窗体里面订阅该委托,当子窗体关闭的时候触发该事件。


这儿想法不错