我试图捕捉我的表单的结束,以便当用户退出时,它将"用户已退出"保存到文本文件,这是我的代码:
private void mainForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (String.IsNullOrEmpty(directory))
{
Close();
e.Cancel = false;
}
else
{
string time = DateTime.Now.ToString("hh:mm");
TextWriter msg = new StreamWriter(directory, true);
msg.WriteLine(" (" + time + ") == " + uName + " Has Left The Chat == ");
msg.Close();
Close();
e.Cancel = false;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,我收到此错误:
"确保没有无限循环或无限递归"
有想法该怎么解决这个吗?
您不能从表单关闭调用Close()方法.删除所有Close()调用,它将工作.
private void mainForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (String.IsNullOrEmpty(directory))
{
e.Cancel = false;
}
else
{
string time = DateTime.Now.ToString("hh:mm");
using(TextWriter msg = new StreamWriter(directory, true))
{
msg.WriteLine(" (" + time + ") == " + uName + " Has Left The Chat == ");
msg.Close();
}
e.Cancel = false;
}
}
Run Code Online (Sandbox Code Playgroud)