C# 禁用关闭按钮

Unity3D 获取主窗口句柄 using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Windows.Forms; public class C { public delegate bool WNDENUMPROC(IntPtr hwnd, uint lParam); [DllImp 阅读详情

C# 禁用关闭按钮

写在前面

最近项目中需要禁用窗口的关闭按钮,找了好久找到了2种方法,供同样需求的人使用。

方法1

加载DllIport user32.dll使用GetSystemMenu函数来获取标题栏的菜单句柄,然后使用EnableMenuItem函数来禁用关闭按钮,具体代码如下:

    //禁用关闭按钮
            IntPtr hMenu = GetSystemMenu(this.Handle, false); //获取程序窗体的句柄

            if (hMenu != IntPtr.Zero)
            {
                EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED | MF_DISABLED); //禁用关闭功能
            }

此方法需要在resize的事件中再执行一次,不然窗口resize之后,关闭按钮就会又变为可用的。

方法2

方法2较为完美,通过重载Form的CreateParams来更改窗口样式,从而达到关闭按钮禁用的效果。具体代码如下:

protected override CreateParams CreateParams
		{
			get
			{
				CreateParams createParams = base.CreateParams;
				createParams.ClassStyle |= 512;
				return createParams;
			}
		}

这段代码加到你的Form类里面就可以了,完美。

C#实现禁用窗口上的关闭按钮 (附完整源码) 阅读详情

相关推荐

C# WinForms禁用窗体关闭按钮实战教程

回顾整篇文章,我们经历了几个阶段的认知升级:🔹 最初我们认为:“能不能禁用关闭按钮?” → 于是设置了🔹 后来发现:“能不能只禁用关闭而不影响其他?” → 开始研究 Win32 API🔹 接着意识到:“能不能根据不同情况动态控制?” → 引入状态管理和事件拦截🔹 最终升华到:“该不该阻止用户退出?” → 回归 UX 本质,设计合理引导机制这才是完整的成长路径。所以,下次当你想要禁用关闭按钮时,请先问问自己:“我是想保护数据,还是想控制用户?

weixin_35749786的博客 1204

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

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

qq_20629025的博客 3861

Matlab:imageDatastore() 高效读取图像数据集的实战技巧

本文详细介绍了Matlab中imageDatastore()函数的高效使用技巧,帮助用户从繁琐的手动读取图像数据集中解放出来。通过核心语法、关键参数(如IncludeSubfolders、LabelSource、ReadSize)的解析,以及数据集分割、打乱等进阶实战操作,指导读者构建稳定、高效的图像数据读取管道,特别适用于大型图像数据集处理和机器学习项目。

hill8的博客 1100

C#禁用关闭按钮

界面 代码 private void OK_btn_Click(object sender, EventArgs e)//验证通过关闭窗体 { string select = "SELECT * FROM log_in where username='" + Form1.name + "'and password='" + Pawss_txt.Text ...

weixin_45096602的博客 506

Homebrew 必备软件清单:我的 macOS 开发环境搭建全记录

本文详细介绍了如何使用Homebrew在macOS上搭建高效的开发环境,包括基础配置、核心开发工具链、高效编码工具集等30个必备工具。通过Homebrew这一macOS缺失的包管理器,开发者可以一键安装命令行工具和GUI应用,大幅提升工作效率。文章还提供了日常维护命令和疑难问题解决方案,适合从新手到资深开发者的所有用户。

weixin_28836507的博客 353

3种六轴IMU姿态解算算法对比:互补滤波、Mahony与卡尔曼滤波性能实测

本文深入对比了三种六轴IMU姿态解算算法:互补滤波、Mahony与卡尔曼滤波的性能表现。通过实测数据分析了各算法在精度、计算复杂度和适用场景上的差异,为无人机、机器人等运动控制系统提供了选型建议。重点探讨了六轴陀螺仪与加速度传感器的数据融合技术,帮助开发者根据项目需求选择最优解算方案。

weixin_29054245的博客 337

C# winform中窗口关闭按钮的隐藏与禁用详解

这篇文章主要介绍了C# winform中窗口关闭按钮的隐藏与禁用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 首先说一句: 不存任何一种方式可以单独隐藏关闭按钮,隐藏的话会把所有最大化,最小化,帮助,关闭按钮都给隐藏掉。 第一种:禁用窗口上部的关闭按钮 方法一:在Form1的窗口程序中desigener设计器中重写如下方法:(将此部分粘贴到窗口程序中去就可以了) protected override void WndProc(ref Message m) { c

chinaherolts2008的博客 1830

损失函数大汇总(四十五)(clDice Loss附公式推导与代码)

clDice Loss是一种针对细长结构分割任务的拓扑保持损失函数,通过比较预测区域和真实区域的中心线重叠情况来评估分割质量。与传统Dice Loss关注区域重叠不同,clDice Loss重点考察连通性和骨架拓扑结构,能有效避免血管断裂、分支错误连接等问题。该损失函数包含两个核心指标:预测骨架在真实区域中的覆盖比例(Topology Precision)和真实骨架被预测区域覆盖的比例(Topology Sensitivity),通过调和平均得到最终评估值。由于传统骨架提取算法不可导,实际实现采用可微的so

悦学共鸣,温柔以待,汇聚光芒,共同成长 451

C#控制台窗口禁用关闭按钮

C#控制台窗口禁用关闭按钮 public static void RemoveCloseMenu() { // 与控制台标题名一样的路径 // Process.GetCurrentProcess().MainModule.FileName; string fullPath = Console.Title; // 根据控制台标题找控制台 int WINDOW_HANDLER

赵庆明老师 1378

提示词驱动的多智能体协作系统

《提示词驱动的多智能体协作系统》 关键词:人工智能、多智能体系统、协作机制、提示词驱动、系统设计与应用 摘要:本文深入探讨提示词驱动的多智能体协作系统,首先介绍其背景和核心概念,然后详细分析多智能体系统的基本原理和提示词驱动的协作机制,最

AI天才研究院 847

【技能】OpenClaw Skills学习及手搓一个极简skill

本文介绍了OpenClaw Skills的基础概念与使用方法。Skills是OpenClaw代理使用工具的核心载体,通过SKILL.md文件定义技能属性和执行方式。技能加载遵循"工作区>本地>内置>自定义目录"的优先级规则。用户可通过ClawHub一键安装现成技能,也可自定义开发技能:创建技能目录,编写包含YAML元数据和执行指令的SKILL.md文件,放置于工作区skills目录进行测试。文章还介绍了多代理场景下的技能共享、插件集成以及安全注意事项,包括沙箱使用和敏感

海兰 3976

c# 禁用和启用windows form窗体上的关闭按钮

禁用和启用windows form窗体上的关闭按钮 1public partial class Form1 : Form2{3private bool isEnableCloseButton = false;4public Form1(string strFlag)5{6 InitializeComponent...

weixin_30549657的博客 1687

FP16、BF16、INT8、INT4精度模型加载所需显存以及硬件适配的分析

本文主要介绍了FP16、INT8、INT4精度模型加载占用显存大小的分析,希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 模型加载显存占用大小 3. 不同精度是否与硬件适配

herosunly的博客 23万+

c# 控制台程序禁用关闭按钮完美解决

代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace ConsoleApplication1 { class Program { [DllImp...

qq165285727的专栏 2101

【00】虹软2023届校招专场 ,计算机类笔试攻略(笔试考试时间、考察范围、笔试难度 等说明)

虹软科技2023校招笔试攻略:三大岗位类别(算法、算法优化、开发)分别于7月24日进行。题型包括选择题、编程题和问答题,其中算法类题目降低难度,编程题改为LeetCode模式。重点考察数学基础、机器学习、编程能力(C/C++/Python)、数据结构和算法优化等。建议根据投递岗位选择问答题,算法优化类注重系统知识和SIMD优化,开发类侧重多线程等实际应用能力。笔试结果将作为校招offer的重要参考。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 276

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

c# 禁用Excel窗口关闭按钮

 先是声明API的类:using System;using System.Runtime.InteropServices;class Win32{ /// /// 查找窗口句柄 /// /// 窗口类名 /// 窗口标题 /// [DllImport("user32")] public s

sohighthesky的专栏 1774

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

c# 控制台程序禁用关闭按钮

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace ConsoleApplication1 { class Program { [DllImport("User32.dll ", EntryPoint = "FindWindow")] priv.

build2024 1083

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

关闭指定_如何使用 C# 禁用控制台窗口的关闭按钮?

这是一段古老的代码,也是我以前经常用到的代码。虽然现在和以后基本上都不会再用到它了,但是在特定的场景中,它很好用。使用场景有时候,我们需要编写一个具有一定处理逻辑的控制台程序,这比编写 Windows 服务要简单一些。但是,我们要防止不小心点击到控制台窗口右上角的关闭按钮而导致程序非正常退出。于是就有了如这篇文章标题所述的一个简单的需求。代码实现查找 Windows 窗口和禁用 Wind...

weixin_42515687的博客 798

C# 禁用控制台应用程序关闭按钮

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Runtime.InteropServices;namespace ConsoleApplication1{class Program{...

auir28348的博客 309

java控制台程序如何禁用关闭的按钮_C# 禁用控制台应用程序关闭按钮

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Runtime.InteropServices;namespace ConsoleApplication1{class Program{[DllImport("user32.dl...

weixin_36328260的博客 216

C#/CSharp - 禁用Form的关闭按钮

private const int CP_NOCLOSE_BUTTON = 0x200; protected override CreateParams CreateParams { get { CreateParams myCp = base.CreateParams; myCp.ClassStyle = myCp.Class...

sabolasi 291

C#——winform中窗口关闭按钮隐藏与禁用

首先说一句:不存任何一种方式可以单独隐藏关闭按钮,隐藏的话会把所有最大化,最小化,帮助,关闭按钮都给隐藏掉。 第一 种:   禁用窗口上部的关闭按钮  方法一:在Form1的窗口程序中desigener设计器中重写如下方法:(将此部分粘贴到窗口程序中去就可以了) protected override void WndProc(ref   Message m)   &n...

jiDxiaohuo的博客 3105

C#禁用窗体的关闭按钮

private const int CP_NOCLOSE_BUTTON = 0x200; protected override CreateParams CreateParams { get { CreateParams myCp = base.CreateParams; myCp.ClassStyle = myCp.Cla...

aizhuao7642的博客 868
上一篇: UOS应用商店安装失败,缺少依赖的问题
下一篇: Chrome插件请求数据时 请求报错(blocked:mixed-content)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值