簡體   English   中英

結帳表格C#

[英]Closing Form C#

最近,我不得不編輯程序代碼,以便在創建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
}

您可以像這樣停止收聽事件

private void btn_PdfCreate_CloseForm_Click(object sender, EventArgs e)
{
    this.FormClosing -= Form1_FormClosing
    showPDf();
    Close();
}

您可以使用CloseReason的財產FormClosingEventArgs

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (e.ClosingReason == CloseReason.UserClosing && MessageBox.Show("Exit?", "Exit", MessageBoxButtons.YesNo) == DialogResult.No)
    {
        e.Cancel = true;
    }
}

使用e.ClosingReason來了解是否由於用戶試圖關閉表單或其他原因而觸發了formClosing事件。

要進一步閱讀,請訪問MSDN: http : //msdn.microsoft.com/zh-cn/library/system.windows.forms.formclosingeventargs.closereason( v= vs.110).aspx

無論如何,您都想在創建pdf后關閉表單。 因此,如下所示在創建pdf之后立即調用Form的Dispose方法,而無需注冊OnFormClosing事件

private void btn_PdfCreate_CloseForm_Click(object sender, EventArgs e)
{
    showPDf();
    this.Dispose();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM