我希望通过Alt + F4不会关闭该窗体,但是如果从同一窗体调用Application.Exit()
或this.Close
,则应将其关闭。
我尝试了CloseReason.UserClosing
,但仍然没有帮助。
最佳答案
如果您只需要过滤掉Alt + F4事件(使关闭框,this.Close()
和Application.Exit()
保持点击状态,就像往常一样),那么我可以提出以下建议:
KeyPreview
true
的属性; FormClosing
和 KeyDown
事件:private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (_altF4Pressed)
{
if (e.CloseReason == CloseReason.UserClosing)
e.Cancel = true;
_altF4Pressed = false;
}
}
private bool _altF4Pressed;
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Alt && e.KeyCode == Keys.F4)
_altF4Pressed = true;
}