Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 呼叫表单。在表单中关闭。关闭_C#_.net_Forms_Winforms - Fatal编程技术网

C# 呼叫表单。在表单中关闭。关闭

C# 呼叫表单。在表单中关闭。关闭,c#,.net,forms,winforms,C#,.net,Forms,Winforms,我的任务是清理公司正在使用的应用程序。以前的开发人员不再在该公司工作,我有一个问题 在某种形式中有一种形式。关闭方法。在这个方法中,编写了一些自定义代码。此方法的最后一行是Close;呼叫查找源时,它会返回System.Windows.Forms.Form.Close 此代码示例在下面可见: private void Form1_Closing(object sender, CancelEventArgs e) { // Some custom code here. Clos

我的任务是清理公司正在使用的应用程序。以前的开发人员不再在该公司工作,我有一个问题

在某种形式中有一种形式。关闭方法。在这个方法中,编写了一些自定义代码。此方法的最后一行是Close;呼叫查找源时,它会返回System.Windows.Forms.Form.Close

此代码示例在下面可见:

private void Form1_Closing(object sender, CancelEventArgs e)
{

    // Some custom code here.

    Close();
}
调试时,当代码到达Close时;它跳回Form1_关闭方法。这将导致无休止的递归调用,最终导致堆栈溢出。现在,在Windows7上,我有时会遇到堆栈溢出错误。在Windows 10上,这不会发生。有人知道为什么我的老同事把Close call放在Closing方法中吗


如果需要更多信息,我会尽力提供。现在,我只是在注释中添加了关闭调用,一切都像以前一样正常,现在Windows 7上也没有偶尔出现的错误和溢出。

关闭事件在表单即将关闭时触发。您不必调用close方法,因为这是首先调用事件的方法

如果希望表单关闭,只需什么都不做,因为退出关闭回调时它将关闭

如果要阻止它关闭,可以编写e.Cancel=True,这将阻止窗体关闭

你的大学可能调用了close方法,因为它有一个重载版本,但在某个时候被删除了。或者他/她也想关闭另一个表单。
重要的是,在这种情况下不需要调用该方法。

关闭事件在表单即将关闭时触发。您不必调用close方法,因为这是首先调用事件的方法

如果希望表单关闭,只需什么都不做,因为退出关闭回调时它将关闭

如果要阻止它关闭,可以编写e.Cancel=True,这将阻止窗体关闭

你的大学可能调用了close方法,因为它有一个重载版本,但在某个时候被删除了。或者他/她也想关闭另一个表单。
重要的是,在这种情况下不需要调用该方法。

可能程序员不想关闭此表单。只需将语句循环到边表单中即可。 如果要关闭此表单,只需删除或注释关闭即可。
如果要将资源返回到计算机,则需要将Dispose置于此方法的末尾

可能程序员不想关闭此表单。只需将语句循环到边表单中即可。 如果要关闭此表单,只需删除或注释关闭即可。
如果要将资源返回到计算机,则需要将Dispose置于此方法的末尾

似乎可以安全地删除该关闭调用。关闭事件由正在代码中调用的关闭命令触发,或者通过单击控制框中的X来触发。开发人员可能希望通过调用e.cancel=True,使用自定义代码取消关闭事件的关闭。除此之外,不应该调用close。我认为,在某种程度上,它是为了执行以Form.close方法完成的逻辑。然而需要在两个位置执行的任何操作都应该重构为一个单独的方法,该方法可以从两个位置调用,具体取决于本机for事件流的行为。在这种代码重构中,您是否删除了重写的Close函数?在调用之前,条件中是否有return语句关似乎是试图在不使用e.Cancel=true;的情况下停止关闭表单;。似乎可以安全地删除该关闭调用。关闭事件由正在代码中调用的关闭命令触发,或者通过单击控制框中的X来触发。开发人员可能希望通过调用e.cancel=True,使用自定义代码取消关闭事件的关闭。除此之外,不应该调用close。我认为,在某种程度上,它是为了执行以Form.close方法完成的逻辑。然而需要在两个位置执行的任何操作都应该重构为一个单独的方法,该方法可以从两个位置调用,具体取决于本机for事件流的行为。在这种代码重构中,您是否删除了重写的Close函数?在调用之前,条件中是否有return语句关似乎是试图在不使用e.Cancel=true;的情况下停止关闭表单;。