C#Closing事件处理程序无法正常工作

时间:2014-05-22 15:06:39

标签: c# event-handling formclosing

当用户关闭当前时,我希望主菜单表单大小正常。我已经尝试了各种方法来处理Closing事件但是注意到表单似乎仍然关闭并且没有显示消息框,提醒我该函数已经运行。

主菜单表单已打开,但在用户使用当前表单时最小化。

我的结束事件处理程序;

private void frm_createCust_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            e.Cancel = true;
            MessageBox.Show("Closing");
            frm_MainMenu frm_MainMenu = new frm_MainMenu();
            frm_MainMenu.WindowState = FormWindowState.Normal;
            frm_MainMenu.Show();
            //this.Close();            
        } 

提前致谢。

2 个答案:

答案 0 :(得分:4)

子窗体不应该在它关闭时尝试影响它的父窗体,而是父窗口应该处理该逻辑并且是在代码中应用事件处理程序的那个:

//somewhere in your main form's code:
SomeChildForm child = new SomeChildForm();
child.FormClosing += (s, args) =>
{
    WindowState = FormWindowState.Normal;
    Show();
};
child.Show();

答案 1 :(得分:0)

这是你想要的吗?表格是父/子关系吗?

this.ParentForm.WindowState = FormWindowState.Normal;
相关问题