C# ESC按键实现窗体的最小化

C# ESC按键实现窗体的最小化

前言

Windows中,微信有个很快捷的功能,就是按ESC将当前的窗体最小化,这个功能用起来非常方便。 而C# WinForm中非常容易实现这个功能,在这里分享一下。

逻辑思路

  • 首先,我们要监听监听ESC键,然后通过触发事件来运行我们需要执行的一些列动作或显示。

  • 其次,C#中有哪些常用的方法呢?在C#中一般可以通过重写窗体类的ProcessCmdKey方法或使用KeyDown事件来监听键盘输入。不抬杠,KeyPress事件也能实现。

  • 最后,在调用的方法时间中将窗体的大小改变,这里我们就可以联想到 Form窗体的WindowState窗体属性,它包括 FormWindowState.Maximized、 FormWindowState.Normal和FormWindowState.Minimized。也就是我们平时常说的最大化,正常和最小化。

代码描述

  • 在这里我们以KeyDown事件为例的代码来实现监听键盘输入,需要非常注意的是(重点!重点!重点!)Form的属性杂项KeyPreview必须设置为True。即KeyPreview=True要提前设置属性或者用代码提前设置。
  • 可以看到核心一句话his.WindowState = FormWindowState.Minimized,立刻就实现了窗体的最小化,是不是很简单。
    在这里插入图片描述

  private void Form_main_KeyDown(object sender, KeyEventArgs e)
  {
      //注意:Form的属性杂项KeyPreview必须设置为True.才可以使能捕获所有窗体上的按键事件
      if (e.KeyCode == Keys.Escape)//按下ESC最小化//27
      {  
             this.WindowState = FormWindowState.Minimized; //(最小化)
      }
  }
  • 请勿止步,我们总要有点小追求,至少比微信做的强大一点点吧! 我将代码稍微复杂一点,条件改为如果最大化就变正常,如果正常变最小化。
  private void Form_main_KeyDown(object sender, KeyEventArgs e)
  {
      //注意:Form的属性杂项KeyPreview必须设置为True.才可以使能捕获所有窗体上的按键事件
      if (e.KeyCode == Keys.Escape)//按下ESC最小化//27
      { 
          if (this.WindowState == FormWindowState.Maximized)
              this.WindowState = FormWindowState.Normal;//(正常化)
          else if (this.WindowState == FormWindowState.Normal)
              this.WindowState = FormWindowState.Minimized; //(最小化)
      }
  }

最后

看看是不是很容易就实现了按ESC按键窗体的最小化了呢。还可以做的比微信还高级。
小伙伴们是不是都跃跃欲试了呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火星papa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值