C# 关于Form.Close()的更多信息
很明显,您需要在表单之后使用return.Close,如果您不想执行其余的方法代码。我是说像这样的缝合:C# 关于Form.Close()的更多信息,c#,winforms,C#,Winforms,很明显,您需要在表单之后使用return.Close,如果您不想执行其余的方法代码。我是说像这样的缝合: private void SomeMethod() { if (someCondition) { Close(); return; } SomeOtherMethod; } 但是,如果这个SomeMethod是从其他地方或standart控件事件处理程序调用的呢?比如Handler->Method1->som
private void SomeMethod()
{
if (someCondition)
{
Close();
return;
}
SomeOtherMethod;
}
但是,如果这个SomeMethod是从其他地方或standart控件事件处理程序调用的呢?比如Handler->Method1->somethod。如果从SomeMethod调用Close(),然后执行return,那么Method1和处理程序代码会一直执行到底,还是表单最终会关闭
有没有办法立即使用Close-to,嗯,Close-form?我的意思是,就从这里开始,而不是在所有序列完成执行之前?因为UI在单个线程中运行,所以所有操作都是按顺序执行的。仅仅因为表单已关闭并不意味着进程已停止,所以当然,代码将被执行
如果在关闭
SomeMethod
中的表单后不想执行任何其他代码,只需重写代码,这样SomeMethod
在不需要执行任何其他操作时将返回false
。如果这是应用程序的主要表单,您可以直接调用application.Exit()
。但是,这并不适用于所有情况。您应该使用bool
作为嵌套方法的返回类型,并相应地决定流程。调用Form.Close()方法时,表单立即关闭,但方法继续运行。尝试在按钮事件处理程序中运行以下代码,同时查看输出窗口以查看其操作:
private void button1_Click(object sender, EventArgs e)
{
Debug.WriteLine("Closing...");
Close();
Thread.Sleep(5000);
Debug.WriteLine("End of method.");
}