当前位置:  开发笔记 > 编程语言 > 正文

如何禁用Alt + F4结账表格?

如何解决《如何禁用Alt+F4结账表格?》经验,为你挑选了7个好方法。

在ac#win表单中禁用Alt+ F4以阻止用户关闭表单的最佳方法是什么?

我使用窗体作为弹出对话框来显示进度条,我不希望用户能够关闭它.



1> Martin..:

这样做的工作:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
}

编辑:回应pix0rs关注 - 是的,你是正确的,你将无法以编程方式关闭应用程序.但是,您可以在关闭表单之前删除form_closing事件的事件处理程序:

this.FormClosing -= new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
this.Close();


我会这样做事件处理程序:`e.Cancel =(e.Reason == CloseReason.UserClosing);`.这样,您可以保证只有在USER尝试关闭表单时才会关闭.
我怀疑大多数人都在相关表单上实现此方法(Form1).在这种情况下,建议您不要附加委托,而是覆盖OnFormClosing方法."OnFormClosing方法还允许派生类在不附加委托的情况下处理事件.这是在派生类中处理事件的首选技术." http://tinyurl.com/3dzzljq

2> Matt Warren..:

如果你看一下价值的FormClosingEventArgs e.CloseReason,它会告诉你为什么形式正在被关闭.然后,您可以决定要做什么,可能的值是:

会员名称 - 说明


- 关闭的原因未定义或无法确定.

WindowsShutDown - 操作系统在关闭之前关闭所有应用程序.

MdiFormClosing - 此多文档界面(MDI)表单的父表单正在关闭.

UserClosing - 用户通过用户界面(UI)关闭表单,例如单击窗体窗口上的"关闭"按钮,从窗口的控制菜单中选择"关闭",或按ALT+ F4.

TaskManagerClosing - Microsoft Windows任务管理器正在关闭该应用程序.

FormOwnerClosing - 所有者表单正在关闭.

ApplicationExitCall - 调用Application类的Exit方法.


如果只是他们爆发UserClosing更细粒度,那么你可以专门针对Alt + F4 ......

3> antsyawn..:

我相信这是正确的方法:

protected override void OnFormClosing(FormClosingEventArgs e)
{
  switch (e.CloseReason)
  {
    case CloseReason.UserClosing:
      e.Cancel = true;
      break;
  }

  base.OnFormClosing(e);
}



4> angry person..:

请注意,应用程序被认为是完全阻止自身关闭的错误形式.您应该检查Closing事件的事件参数,以确定要求关闭应用程序的方式和原因.如果是因为Windows关闭,则不应阻止关闭发生.



5> Timbo..:

您可以处理该FormClosing事件并设置FormClosingEventArgs.Canceltrue.



6> Orion Edward..:

我使用窗体作为弹出对话框来显示进度条,我不希望用户能够关闭它.

如果用户决定关闭你的应用程序(并且知识渊博)足以按下alt + f4,他们很可能也足够知识来运行任务管理器并杀死你的应用程序.

至少使用alt + f4你的应用程序可以正常关闭,而不仅仅是让人们杀死它.根据经验,杀死应用程序的人意味着配置文件损坏,数据库损坏,无法恢复的半完成任务以及许多其他痛苦的事情.

至少提示他们'你确定',而不是防止它.



7> 小智..:

这是禁用Alt+ 的技巧F4

private void test_FormClosing(object sender, FormClosingEventArgs e)
{
    if (this.ModifierKeys == Keys.Alt || this.ModifierKeys == Keys.F4) 
    { 
        e.Cancel = true; 
    }    
}

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有