Code:
  1. 窗口样式中的ControlBox选为False就可以去掉右上角的叉
  2. 下面是一个简单的例子,调用API实现了禁用关闭按钮的功能
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using System.Runtime.InteropServices;
  11. namespace winFormTest
  12. {
  13. public partial class Form2 : Form
  14. {
  15. [DllImport("USER32.DLL")]
  16. public static extern int GetSystemMenu(int hwnd, int bRevert);
  17. [DllImport("USER32.DLL")]
  18. public static extern int RemoveMenu(int hMenu, int nPosition, int wFlags);
  19. const int MF_REMOVE = 0x1000;
  20. const int SC_RESTORE = 0xF120; //还原
  21. const int SC_MOVE = 0xF010; //移动
  22. const int SC_SIZE = 0xF000; //大小
  23. const int SC_MINIMIZE = 0xF020; //最小化
  24. const int SC_MAXIMIZE = 0xF030; //最大化
  25. const int SC_CLOSE = 0xF060; //关闭
  26. public Form2()
  27. {
  28. InitializeComponent();
  29. }
  30. private void Form2_Load(object sender, EventArgs e)
  31. {
  32. int hMenu;
  33. hMenu = GetSystemMenu(this.Handle.ToInt32(), 0);
  34. RemoveMenu(hMenu, SC_CLOSE, MF_REMOVE);
  35. }
  36. }
  37. }
  38. //来自http://hi.baidu.com/flydragon1125/blog/item/946158ed4381c6d1b21cb1a9.html
  39. [DllImport("user32.dll")]
  40. static extern IntPtr GetSystemMenu(IntPtr hwnd, bool bRevert);
  41. [DllImport("user32.dll")]
  42. static extern bool DeleteMenu(IntPtr hMenu, uint uPosition, uint uFlags);
  43. [DllImport("user32.dll")]
  44. static extern bool EnableMenuItem(IntPtr hMenu, uint uIDEnableItem, uint uEnable);
  45. const uint SC_MOVE = 0xF010; //移动
  46. const uint SC_CLOSE = 0xF060;//关闭
  47. const uint MF_BYCOMMAND = 0x00; //按命令方式
  48. const uint MF_GRAYED = 0x01;    //灰掉
  49. const uint MF_DISABLED = 0x02;  //不可用
  50. private void Form1_Load(object sender, EventArgs e)
  51. {
  52. IntPtr hMenu = GetSystemMenu(this.Handle, false); //获取程序窗体的句柄
  53. if (hMenu != IntPtr.Zero)
  54. {
  55. DeleteMenu(hMenu, SC_MOVE, MF_BYCOMMAND); //删除移动菜单,禁用移动功能
  56. EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED | MF_DISABLED); //禁用关闭功能
  57. }
  58. }
  59. //来自http://hi.baidu.com/stevenlimin/blog/item/296092af0cbe1cc57cd92aa7.html

在C#中的Form属性没有禁用关闭按钮的属性了。但我们可能通知设置构造参数来进行禁用,方法如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace ECT
...{
    public partial class NoCloseForm : FormBase
    ...{
        /**//// <summary>
        /// 获取已设置无法关闭窗口创建参数。就是这里
        /// </summary>
        protected override CreateParams CreateParams
        ...{
            get
            ...{
                int CS_NOCLOSE = 0x200;
                CreateParams parameters = base.CreateParams;
                parameters.ClassStyle |= CS_NOCLOSE;

                return parameters;
            }
        }


        public NoCloseForm()
        ...{
            InitializeComponent();
        }
    }
}

//来自http://www.cnychao.cn/post/41.html

[转]关于c#winform禁用关闭按钮的方法相关推荐

  1. c#winform禁用关闭按钮的方法

    一.设置ControlBox为false 二.调用API实现了禁用关闭按钮 using System;      using System.Collections.Generic;      usin ...

  2. php关闭按钮,C#_winform去掉右上角关闭按钮的方法,一种方法是可以在窗体的属性 - phpStudy...

    winform去掉右上角关闭按钮的方法 一种方法是可以在窗体的属性面板将窗体的 ControlBox属性设置为false,或者在窗体的构造函数中这样写: public Form1() { Initia ...

  3. WinForm禁用窗体自带的关闭功能

    1.代码结构 2.实现代码 using System; using System.Windows.Forms;namespace WinFormForbidCloseDemo {/// <sum ...

  4. [转] C# Winform 拦截关闭按钮触发的事件

    原文 C# Winform 拦截关闭按钮触发的事件 用户关闭软件时,软件一般会给"是否确认关闭"的提示. 通常,我们把它写在FormClosing 事件中,如果确定关闭,就关闭:否 ...

  5. ubuntu中wifi显示被硬件禁用的解决方法

    ubuntu中wifi显示被硬件禁用的解决方法 参考文章: (1)ubuntu中wifi显示被硬件禁用的解决方法 (2)https://www.cnblogs.com/houji/p/7643443. ...

  6. php war,PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法

    本文实例讲述了PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法.分享给大家供大家参考.具体分析如下: 今天在一朋友服务器测试一个网站时发现我在测试ph ...

  7. 如何关闭uefi启动模式|预装win8/win10电脑禁用uefi引导方法

    如何关闭uefi启动模式|预装win8/win10电脑禁用uefi引导方法 发布时间:2016-12-19 17:14发布者:系统城-xtcjh浏览数:43866 现在新出的电脑大都采用UEFI启动模 ...

  8. C# winform 禁用最小化和还原按钮(消息循环截获处理)

    项目中遇到一些问题,需要根据权限配置去控制用户对系统平台是否可以最小化和还原窗口大小的操作,并且屏蔽系统的一些快捷键,比如:alt+F4,windows键,任务管理器等一些操作,代码如下: (禁止窗口 ...

  9. linux7禁用ipv6,RHEL 7 及 CentOS 7 彻底禁用IPv6的方法

    原标题:RHEL 7 及 CentOS 7 彻底禁用IPv6的方法 IPv6在未来可能成为主流,但是就目前而言,很多软件对IPv6的支持并不是很完善,可能导致各类问题.RHEL 7 & Cen ...

  10. windows 禁用ipv6服务_Win10如何关闭IPV6?Win10禁用IPv6的方法

    在Win10系统中默认开启IPV6,不过这个协议暂时我们还用不到.而且开启该协议有时对系统运行有一定的影响,一些网卡还会因为IPv6出现系统未响应,假死等情况,那么Win10系统怎么关闭IPV6?下面 ...

最新文章

  1. python 并集union, 交集intersection, 差集difference, 对称差集symmetric_difference
  2. SpringSecurity鉴权流程分析 附源码注释,xdm,一起来看看吧
  3. 修改某个用户名和密码
  4. android 如何判断有没有网络
  5. MathType与Origin是怎么兼容的
  6. 晋职称不考外语 计算机,评职称不考外语计算机的价值导向
  7. vSAN Health Service-物理磁盘运行状况-物理磁盘运行状况检索问题(2149291)
  8. 利用hacking搜索技巧搜索到你任何特定想要的内容
  9. 2017.8.15 数据库
  10. Vue学习笔记之06-响应式的数组方法
  11. php如何定义和使用常量,PHP中如何定义和使用常量_PHP教程
  12. java 设计模式学习笔记四 prototype模式
  13. 图文详解 MapReduce 工作流程
  14. sklearn svm 调参_sklearn调参(验证曲线,可视化不同参数下交叉验证得分)
  15. macOS Big Sur 11.5 (20G71) 正式版 DMG、ISO、IPSW 百度网盘下载
  16. 三种方法求解Fibonacci(斐波那契)数列
  17. activiti获取偏移量minx与miny
  18. Mac 有线网络或WiFi网络共享成WiFiwifi的方法
  19. 「win10右键菜单修改名称」
  20. 参加阿里的Java面试经验

热门文章

  1. VRRP实现AC双机备份原理详解与配置实例
  2. IS-IS详解(十四)——IS-IS路由开销计算与外部路由引入
  3. RPM-GPG-KEY在包安装时候的作用
  4. Liunx安装 jemalloc == 内存管理工具
  5. 转:面试题收集——Java基础部分(一)
  6. Android开发 Facebook取得key-hashes
  7. [译]反射(Reflection)和动态(dynamic)
  8. [原]tornado 源码分析系列目录
  9. ArcGIS地图文档(mxd)过大的问题
  10. IP地址,子网掩码,默认网关,DNS服务器是什么意思?