我已经阅读了一些关于禁用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);
除非我特别告诉它,否则我怎样才能防止新表格被关闭?