C# 实现ESC退出窗口的几种方法

2023-11-18

引言

我们通常用通过点击取消按键或者右上角的“X”盒子退出的方法来实现关闭当前Form窗体。但要使用按键ESC退出关闭窗口就显得更加高级了,实现起来并不困难,但用户体验会提升一个档次,这里我讲一讲我小结的几个方法,我用的VS2019。


方法一 同步按钮法

  • 我所谓的同步按钮也就是我们本来就有一个退出或者取消的按键,我只要有这个按键的退出事件,那么我们就直接可以利用这个按键的事件就可以了,这个方法在VS中的属性中就已经设计好了,所以这个方法最为简单,完全没有难度可言。

1、首先要有一个可以单击退出的按键,在你建立的窗体中添加一个按键即可,添加最简单的退出代码。
在这里插入图片描述

   public partial class Form_test : Form
    {
        public Form_test()
        {
            InitializeComponent();
        }

        private void button_exit_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }

2、其次只有设置窗体属性了,有了之前的事件(button_exit_Click),我们就可以将取消按键的定义为我们的退出事件。如下图,我们将CancelButton选择成我们的button_exit按键控件,完成。
在这里插入图片描述


方法二 监听按键法

  • 顾名思义,实时监听按键按下,新建一个Keypress事件,单检测到ESC按键按下时,就执行关闭的动作,大家很快就联想到了,这里使用其它的自定义按键都是可以的。这个方法的优点就是不需要有控件button的存在,那么,就需要使用代码来描述监听的按下动作。
    1、这里的第一步是将属性KeyPreview设置为true,这一步最为关键容易遗漏。当然使用代码直接设置也完全没有问题。
    在这里插入图片描述
    2、将键盘按键触发事件代码加入。
        private void Form_test_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)Keys.Escape)//按下ESC //27
            {
                this.Close();
            }
        }

方法三 隐藏按钮法

  • 这个同第一个方法的原理基本一致,同样是利用已经存在的button。但是区别是按键被隐藏了,这是一种另辟蹊径的偏门方法,不常用。 需要注意的是,要将button控件的size变成0,0,也就是没有尺寸,避免显示出来,有人问,可以关掉visible来隐藏吗?大家可以试一试哦!

最后

方法总比困难多,条条大路通罗马。大家还有什么好方法,可以一起讨论哦!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 实现ESC退出窗口的几种方法 的相关文章

随机推荐

  • 使用Postman抓取Chrome请求快速生成Request请求代码

    最近在练习爬虫的时候 爬取网站时常常需要模拟浏览器去访问 但是使用request发送请求时 需要填写headers也就是头部信息 但我又是一个懒得复制的人 尝试了很多软件 最后找到了一款特别适合我自己的 方便快捷 话不多说 放链接 下载地址
  • 打卡湘大OJ第二天

    1062 大小写转换 Description 接收一个字母 如果是小写 则将其转换成大写 如果是大写 就将其转换成小写 Sample Input b Sample Output B Hint 输出最后没有换行 题解 include
  • 英语学习对程序员得重要性!

    程序世界的主导语言是英文 编写程序时使用的开发文档和开发工具的帮助文件离不开英文 了解业界的最新动向 阅读技术文章离不开英文 同世界各地编程高手往往也离不开英文 提高英文水平 能大大促进一个程序员的发展 让你有更多的资源 在此 个人总结了几
  • css文本内容呈现两行呈现,超出部分用省略号代替

    标题仅显示两行 溢出内容省略号代替 overflow hidden text overflow ellipsis display webkit box webkit line clamp 2 webkit box orient vertic
  • CPU时钟周期、主频、CPI、MIPS

    主频 理解 主频是机器内部主时钟的频率 主频越高 完成指令的一个执行步骤所用的时间就越短 速度越快 比如跳绳 跳的越快 即频率越高 那么完成一次所用的时间就越短 单位 Hz 常见的有1 8GHz 2 4GHz CPU时钟周期 理解 跟上面的
  • 【华为OD机试真题 python】 字符统计及重排【2022 Q4

    前言 华为OD笔试真题 python 专栏含华为OD机试真题 华为面试题 牛客网华为专栏真题 如果您正在准备华为的面试 或者华为od的机会 有任何想了解的可以私信我进行交流 我会尽可能的给一些建议 和帮您解答 题目描述 字符统计及重排 给出
  • html网页如何将文字排版,【html】文字排版

    Web开发过程中文字排版 默认的情况下 行末的长单词会撑开容器 我们想要的是 像word一样 能够自动换行 既不撑大容器 也不强制拆开行末单词 并且不会隐藏行末单词的多余字母 不能撑开容器 完整的单词不能被强制拆开 如果行末是长单词的话 整
  • IDEA类文件后边有注释插件:Show Comment

    具体功能是在侧边文件树中 显示Java类的注释信息 IDEA文件树增强插件 Show Comment 使用方法 1 类上面加入javadoc注释 回车就可以了 2 在插件市场里面搜索Show Comment 3 重新idea即可 代码填写和
  • 电信客户流失预测----科大讯飞xDataWhale

    记录第一次参加正式的数据挖掘竞赛 由科大讯飞xDatawhale举办的 电信客户流失预测挑战赛 报名链接 2022 iFLYTEK A I 开发者大赛 讯飞开放平台 一 赛题概要 赛题背景 随着市场饱和度的上升 电信运营商的竞争也越来越激烈
  • Day 12: Twin Transformer by 美团

    这是美团和澳大利亚阿德莱德大学联合发表的新文章 也是和 Transformer 相关的 以下是一些要点 Swin Transformer 的 Shifted Windows 虽然有效 但是由于尺寸不同 因此在用现有的深度学习模型来实现的时候
  • CentOS常用zip压缩和解压缩命令

    1 压缩文件夹为zip文件 root cgls zip r mydata zip mydata 2 把mydata zip解压到mydatabak目录里面 root cgls unzip mydata zip d mydatabak 3 m
  • 电脑开机后,显示屏无信号怎么处理?

    转自 微点阅读 https www weidianyuedu com 随着使用电脑的用户越来越多 而使用的用户遇到的问题就越多了 而经常用电脑的同学大部分都遇到过电脑显示器无信号的情况吧 其实相比显示器没有任何显示而言 电脑显示器无信号的故
  • SQLServer如何统计每两小时的值

    把当前时间的 时分转为数字 select CONVERT FLOAT replace CONVERT VARCHAR 6 GETDATE 108 思路 select sum 数字 年月日 小时 2取整 from 表 group by 年月日
  • kafka学习笔记(一)简介

    这是对我找到的学习资料的整理 非手打 参考 https kafka apachecn org intro html https blog csdn net weixin 39468305 article details 106346280
  • Cannot forward after response has been committed问题解决及分析

    通过TOMCAT把系统启动 可以正常登陆门户 登陆进去选择子系统的时候点击登陆的时候 可是去又回到了登陆界面 如此反复就是不能够进入子系统 查看后台报的错误 Cannot forward after response has been co
  • 数据库密码忘记了怎么办

    修改数据库密码 方法1 用SET PASSWORD命令 首先登录MySQL 格式 mysql gt set password for 用户名 localhost password 新密码 例子 mysql gt set password f
  • 应急响应-账户排查

    用户信息排查 在服务器被入侵之后 攻击者可能会建立相关账户 方便进行远程控制 主要采用一下几种 直接建立一个新用户 有时候为了混淆视听 账户名称和系统常用名相似 激活一个系统中的默认用户 但是这个用户不经常使用 建立一个隐藏用 在windo
  • java-通过ip获取地址

    添加maven依赖
  • 关于ArcMap中打开ArcToolbox导致闪退的解决办法

    最近好久不用ArcGis的小编要用到ArcMap去发送一个GP服务 发现按照套路打开ArcMap点击ArcToolbox时 发生了ArcMap的闪退现象 几经周折终于解决了问题 希望也遇到这类问题的同学能够参考解决 而不是无脑的去重装软件
  • C# 实现ESC退出窗口的几种方法

    实现ESC退出窗口的几种方法 引言 方法一 同步按钮法 方法二 监听按键法 方法三 隐藏按钮法 最后 引言 我们通常用通过点击取消按键或者右上角的 X 盒子退出的方法来实现关闭当前Form窗体 但要使用按键ESC退出关闭窗口就显得更加高级了