簡體   English   中英

禁止用戶關閉表格

[英]prohibit user from closing the form

我有一個名為Form_Main的主窗體,當有人要關閉它時,它將關閉整個應用程序(通過整個應用程序我也要退出其他窗體)。 因此,我准備了一個Yes / No MessageBox,詢問用戶是否真的要退出表單。 我在這里:

private void Form_Main_FormClosed(object sender, FormClosedEventArgs e)
{
      DialogResult result = MessageBox.Show("Are you sure?", "Confirmation", MessageBoxButtons.OKCancel);
      if (result == DialogResult.OK)
      {
          Environment.Exit(1);
      }
      else
      {
          //does nothing
      }
}

“確定”按鈕起作用。 但是,當用戶單擊“取消”時, Form_Main已關閉,但應用程序仍在運行(其他表單未Form_Main )。 我應該用//does nothing代替//does nothing

使用FormClosing事件(而不是FormClosed ),然后設置e.Cancel = true

private void Form_Main_FormClosing(object sender, FormClosingEventArgs e)
{
    var result = MessageBox.Show("Are you sure?", "Confirmation", MessageBoxButtons.OKCancel);

    e.Cancel = (result != DialogResult.OK);
}

FormClosing事件窗體實際關閉之前發生,因此您仍然有機會取消它。 當您到達FormClosed事件時,為時已晚。

暫無
暫無

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

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