gpt4 book ai didi

c# - 在 ShowDialog() 中禁用 Alt + F4

转载 作者:行者123 更新时间:2023-11-30 20:02:47 24 4
gpt4 key购买 nike

我已经阅读了一些关于禁用 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);

除非我明确指示,否则如何才能完全防止关闭新表单?

最佳答案

来自 How can I prevent a user from closing my C# application? ,你可以这样做:

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

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

无需跟踪键或取消 FormClosing 事件中的关闭。角落的关闭按钮也将被禁用,但您仍然可以使用 this.Close();

关闭表单

关于c# - 在 ShowDialog() 中禁用 Alt + F4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16368431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com