最近我不得不编辑我的程序代码,以便在创建PDF后关闭表单。在FormClosing()
中有MessageBox.Show
关闭或不关闭,具体取决于DialogResult
。问题是,当我尝试Close()
时,它会向我显示MessageBox
,我需要关闭它而不显示它。谢谢。
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Exit?", "Exit", MessageBoxButtons.YesNo) == DialogResult.No)
{
e.Cancel = true;
}
}
private void btn_PdfCreate_CloseForm_Click(object sender, EventArgs e)
{
showPDf();
// close pdf but skip MessageBox
}
答案 0 :(得分:2)
你可以停止听这样的事件
private void btn_PdfCreate_CloseForm_Click(object sender, EventArgs e)
{
this.FormClosing -= Form1_FormClosing
showPDf();
Close();
}
答案 1 :(得分:1)
您可以使用CloseReason
的{{1}}属性:
FormClosingEventArgs
答案 2 :(得分:0)
使用e.ClosingReason查明用户尝试关闭表单或其他内容是否触发了formClosing事件。
进一步阅读,请访问MSDN: http://msdn.microsoft.com/en-us/library/system.windows.forms.formclosingeventargs.closereason(v=vs.110).aspx
答案 3 :(得分:0)
您无论如何都希望在创建pdf后关闭表单。所以在创建pdf之后调用Form的Dispose
方法,如下所示,无需注册OnFormClosing
事件
private void btn_PdfCreate_CloseForm_Click(object sender, EventArgs e)
{
showPDf();
this.Dispose();
}