簡體   English   中英

在ShowDialog()中禁用Alt + F4

[英]Disable Alt + F4 in ShowDialog()

我已經讀過幾篇有關禁用Alt + F4的文章,到目前為止,它已經可以正常工作了。

目前,我在我的主要表單上有這個,並且它只是在我需要它時才允許關閉表單。

private void Alerter_FormClosing(object sender, FormClosingEventArgs e)
{
    if (_altF4Pressed)
    {
        if (e.CloseReason == CloseReason.UserClosing)
            e.Cancel = true;
        _altF4Pressed = false;
    }
}

private void Alerter_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Alt && e.KeyCode == Keys.F4)
        _altF4Pressed = true;
}

但問題是,當我顯示一個對話框時,這不起作用。 表格仍然在Alt + F4上關閉,並且必須不會發生這種情況,因為它為用戶提供了規避流程和程序的方法。

目前,我的警報表格被稱為使用;

    public static DialogResult show(string param)
    {
        thisParam = param;

        using (Alerter alert = new Alerter())
        {
            if (alert.ShowDialog() == DialogResult.OK) { return DialogResult.OK; }
            else { return DialogResult.Cancel; }
        }
    }

我的主要表格用它調用它;

Alerter.show(rxLine);

除非我明確告知,否則如何防止新表格完全關閉?

如何阻止用戶關閉我的C#應用​​程序? ,你可以這樣做:

protected override CreateParams CreateParams
{
   get
   {
      const int CS_NOCLOSE = 0x200;

      CreateParams cp = base.CreateParams;
      cp.ClassStyle |= CS_NOCLOSE;
      return cp;
   }
}

無需在FormClosing事件中跟蹤鍵或取消關閉。 此外,角落中的關閉按鈕將被禁用,但您仍然可以使用this.Close();

暫無
暫無

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

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