C# 关闭事件处理程序不工作

标签 c# event-handling formclosing

我希望在用户关闭当前 for 时使主菜单窗体大小恢复正常。我已经尝试了各种方法来处理 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();            
        } 

提前致谢。

最佳答案

子窗体在关闭时不应该试图影响其父窗体,而父窗体应该处理该逻辑并成为在代码中应用事件处理程序的窗体:

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

关于C# 关闭事件处理程序不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23810629/

相关文章:

C# Windows 窗体 FormClosing 事件

c# - 隐藏表单而不调用 FormClosing 方法

javascript - 闭包事件委托(delegate) - DOM 父级上的事件监听器,涵盖给定类的子级/后代

android - Firemonkey:如何检测操作系统(Android/iOS)何时关闭

c# - 在.net core应用程序启动中使用MapWhen和ApplicationBuilder的组合?

c# - 如何使用 Vue.js 和 .NET Core API 设置 Active Directory 身份验证

c# - 如何在 WPF ViewModel 中使用模型验证规则

c# - TCPListener 在 listener.EndAcceptTcpClient(asyncResult) 上抛出 Socket 异常

.net - 如何在 ListBox 的第一项上捕获 keyup 事件?

c# - 随着软件复杂性的增加组织事件处理的方法