【发布时间】:2011-04-21 05:12:18
【问题描述】:
我正在玩一些非常简单的窗体。我有一个表单关闭事件的事件处理程序,询问用户是否要保存他们输入的内容:
private void closeNpForm(object sender, FormClosingEventArgs e)
{
if (!saveFlag)
{
if (MessageBox.Show("Do you want to save the text entered?", "Save Changes?", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
e.Cancel = true;
saveFlag = true;
writeToFile(this.allText.Text);
}
}
}
如果用户点击是(表明他们确实想保存他们的文本),我会调用 writeToFile 方法,并设置一个标志以免再次要求他们保存:
private void writeToFile(string text)
{
writer = new StreamWriter("inputdata.txt");
writer.Write(text);
writer.Close();
this.Close();
}
据我所知,writeToFile 方法应该在完成后关闭表单。但这并没有发生,当我运行 writeToFile 方法时,表单只是保持打开状态。谁能告诉我我做错了什么?
据我了解,调用this.Close() 应该触发表单关闭事件,调用我的事件处理程序,由于标志现在为真,表单应该可以正常关闭。
注意,我的父类扩展了 Form 类,所以我只是使用 this 来引用我的表单实例。
【问题讨论】: