C# c中的FormClosing#
你好,先生。我这里的问题是关闭表单函数没有在表单关闭后立即实现。但是,如果我关闭表单并再次打开它,然后再次关闭它,则会执行close_form函数。我怎样才能在编译和运行程序后立即使用close-form方法呢?请帮帮我C# c中的FormClosing#,c#,winforms,C#,Winforms,你好,先生。我这里的问题是关闭表单函数没有在表单关闭后立即实现。但是,如果我关闭表单并再次打开它,然后再次关闭它,则会执行close_form函数。我怎样才能在编译和运行程序后立即使用close-form方法呢?请帮帮我 private Form2 ins = new Form2(); private void userManageLink_Click(object sender, EventArgs e) { ins.ShowDialog();
private Form2 ins = new Form2();
private void userManageLink_Click(object sender, EventArgs e)
{
ins.ShowDialog();
ins.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Close_Form);
}
private void Close_Form(object sender, EventArgs e)
{
MessageBox.Show("Hello World");
}
在调用ShowDialog()之前,将事件处理程序的赋值移动到。调用ShowDialog()后,直到表单关闭后才会返回。到那时,安装事件处理程序已经没有意义了,因为表单已经关闭,事件不会被触发。问题可能是您在ShowDialog调用之后添加了FormClosing处理程序。将显示该对话框,关闭它,然后添加处理程序。尝试在ShowDialog调用之前添加处理程序。此外,您可能不想为每次单击分配事件处理程序,您将开始获得名为multiple的委托times@Matt:对于此问题,只需每次创建一个新的表单对象并对其进行处理。这是我通常做的,而不是在长期存在的类中放置未经分解的表单对象。