zoukankan      html  css  js  c++  java
  • winform屏蔽Alt+F4组合键以防止用户关闭对话框

    winform屏蔽Alt+F4组合键以防止用户关闭对话框,屏蔽Alt + F4的方法有很多,这里列出了一个比较简单而奏效的方法。

    1. 捕获窗体的KeyDown事件

      给窗体添加KeyDown事件,然后加入下面的代码:

    1 private void Form2_KeyDown(object sender, KeyEventArgs e)
    2 {
    3     if (e.KeyCode == Keys.F4 && e.Modifiers == Keys.Alt)
    4     {
    5         e.Handled = true;
    6     }
    7 }

      代码中判断当前用户是否按下了Alt + F4组合键,如果是则执行e.Handled = true用于指示事件已经被成功执行,从而屏蔽了系统的Alt + F4功能。

    2. 改写窗体的Closing事件

      给窗体添加Closing事件,然后加入下面的代码:

    1 public void Form2_FormClosing(object sender, FormClosingEventArgs e)
    2 {
    3     e.Cancel = true;
    4 }

      当窗体被关闭时(用户点击窗体右上角的关闭按钮或通过程序调用窗体的Close()方法)关闭动作会被取消,那么如何才能通过程序来关闭窗体呢?可以在关闭窗体的代码前去掉窗体的Closing事件,如:

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

    2 this.Close();

      当然,你也可以选择不关闭窗体而只是隐藏它,这样该窗体不会在内存中被注销。上面两行代码只能在窗体内部运行,如果你想实现在父窗体中通过程序关闭子窗体,可以在子窗体中添加一个public类型的方法,将上面两行代码加入到方法中,然后在父窗体中调用子窗体的这个方法。如:

    主窗体:

    1 Form2 frm = new Form2();
    2 frm.CloseWindow();

    子窗体:

     1 private void Form2_FormClosing(object sender, FormClosingEventArgs e)
     2 {
     3     e.Cancel = true;
     4 }
     5
     6 public void CloseWindow()
     7 {
     8     this.FormClosing -= new FormClosingEventHandler(this.Form2_FormClosing);
     9     this.Close();
    10 }

    3. 调用COM组建或全局钩子

      这类方法需要借助于第三方的代码来实现,过程稍微复杂一些,不太推荐使用

    本文来自: IT知道网(http://www.itwis.com/) 详细出处参考:http://www.itwis.com/html/net/winform/20110518/10311.html

  • 相关阅读:
    android studio 使用(一)
    【转】How to Change File Ownership & Groups in Linux
    ubuntu 14.04安装nodejs
    基于源码学习-fighting
    linux shell操作
    linux用户管理
    ubutu强制结束进程 kill -9 ProcessID
    ubuntu 添加和删除用户
    ubuntu 14.04查看java的安装路径
    vuex 中关于 mapState 的作用
  • 原文地址:https://www.cnblogs.com/wbcms/p/2322314.html
Copyright © 2011-2022 走看看