(1)设置快捷键并显示出来

 MenuStrip ms = new MenuStrip();ToolStripMenuItem tm1 = new ToolStripMenuItem("你好");ToolStripMenuItem tl1 = new ToolStripMenuItem("你好1");tl1.Click += Tl1_Click;tl1.ShowShortcutKeys = true;//tl1.ShortcutKeyDisplayString = "你好1的ShortcutKeyDisplayString"; 如果ShortcutKeyDisplayString为空,就显示快捷键;反之显示为ShortcutKeyDisplayString的值tl1.ShortcutKeyDisplayString = null;tl1.ShortcutKeys = Keys.Control | Keys.A;tm1.DropDownItems.Add(tl1);ms.Items.Add(tm1);this.Controls.Add(ms);}private void Tl1_Click(object sender, EventArgs e){MessageBox.Show("你好1的单击事件");}

View Code

(2)KeyDown事件

缺点:当程序失去焦点的时候这个热键(快捷键)就不管用了!

private void TextBox1_KeyDown(object sender, KeyEventArgs e){if (e.Control && e.KeyCode == Keys.A){//操作
            }}

View Code

(3)注册和注销系统热键

①添加HotKey类

 class HotKey{//如果函数执行成功,返回值不为0。  //如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。  [DllImport("user32.dll", SetLastError = true)]public static extern bool RegisterHotKey(IntPtr hWnd,                 //要定义热键的窗口的句柄  int id,                      //定义热键ID(不能与其它ID重复)            KeyModifiers fsModifiers,    //标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效  Keys vk                      //定义热键的内容
            );[DllImport("user32.dll", SetLastError = true)]public static extern bool UnregisterHotKey(IntPtr hWnd,                 //要取消热键的窗口的句柄  int id                       //要取消热键的ID
            );//定义了辅助键的名称(将数字转变为字符以便于记忆,也可去除此枚举而直接使用数值)
        [Flags()]public enum KeyModifiers{None = 0,Alt = 1,Ctrl = 2,Shift = 4,WindowsKey = 8}}

View Code

②设置快捷键和事件

 private void Form1_Activated(object sender, EventArgs e){HotKey.RegisterHotKey(Handle, 100, HotKey.KeyModifiers.Ctrl, Keys.A);//注册事件 100随意写,保证不重复。
        }private void Form1_Leave(object sender, EventArgs e){HotKey.UnregisterHotKey(Handle, 100);//注销事件
        }protected override void WndProc(ref Message m){switch (m.WParam.ToInt32()){case 100:MessageBox.Show("???");//执行事件break;default:break;}base.WndProc(ref m);}

View Code

完!

转载于:https://www.cnblogs.com/wwz-wwz/p/7641485.html

设置快捷键(3种方式)相关推荐

  1. VirtualBox虚拟机网络设置(四种方式)

    VirtualBox是什么 VirtualBox 是一款 x86 虚拟机软件.原由德国innotek公司开发,2008年Sun收购了Innotek,而Sun于2010年被Oracle收购,2010年1 ...

  2. nc65用友uap平台按钮怎样设置快捷键的实现方式

    nc65用友uap平台按钮怎样设置快捷键的实现方式 public class CloseAction extends NCAction {private static final long seria ...

  3. 华为--DHCP实验(dhcp设置的两种方式,不分配dhcp地址范围的方式,分配固定地址的方式)

    文章目录 前言 一:实验环境 1.1:基本原理 1.2:原理总结 1.3:实验软件 1.4:实验目的 1.5:华为DHCP实验拓扑图 二:实验过程 2.1:交换机设置 2.2:路由器(R1)设置 2. ...

  4. echarts 饼图的一种---南丁格尔玫瑰图按照百分比大小进行排序以及颜色设置的两种方式(普通设置颜色和渐变色设置)

    本篇博文是记录一下我在开发过程中遇到的一个问题,那就是对于南丁格尔玫瑰图(或者饼图)如何根据百分比大小进行排列,可以很直观的看出数据高低. 首先给大家展示一下官方的样式,具体代码可以去官网上查看:ht ...

  5. VirtualBox虚拟机网络连接设置的四种方式

    这里我先给大家大致讲解下VBox的网络配置及应用. VirtualBox的提供了四种网络接入模式,它们分别是: 1.NAT    网络地址转换模式(NAT,Network Address Transl ...

  6. 转:VirtualBox虚拟机网络连接设置的四种方式

    VirtualBox是一款SUN出品的非常优秀的虚拟机程序,版本也非常齐全,你可以在官网上找到适合各种操作系统平台的版本. 这里我先给大家大致讲解下VBox的网络配置及应用. VirtualBox的提 ...

  7. virtualbox配置apache_VirtualBox虚拟机网络设置(四种方式)

    VirtualBox的提供了四种网络接入模式,它们分别是: 1.NAT 网络地址转换模式(NAT,Network Address Translation) 2.Bridged Adapter 桥接模式 ...

  8. python 设置时区_python时区设置的两种方式

    第一种用pytz 第二种手动加时区再转换格式 a= datetime.datetime.today() o = datetime.timedelta(hours=8) (a+o).strftime(& ...

  9. 沉浸式状态栏设置的几种方式

    先上效果图 总共有三种方法,下面一一介绍:      第一种      布局中顶层容器配置: android:clipToPadding="true" android:fitsSy ...

  10. css文字溢出省略号设置的两种方式

    1.多行文本 display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden; 2.通 ...

最新文章

  1. android采用MVP完整漫画APP、钉钉地图效果、功能完善的音乐播放器、仿QQ动态登录效果、触手app主页等源码...
  2. MYSQL 集群的数据节点错误信息归档
  3. python 只执行一次_Python 定时任务实现只执行一次的方法
  4. OSS- OSS brower 登陆失败
  5. u3d 模版测试 失败_基于Python的HTTP接口自动化测试框架实现
  6. 苏州科技大学计算机学院 李双娴,苏州大学计算机科学与技术学院第十二次研究生代表大会顺利召开...
  7. 计算机二级换c语言,09年计算机二级C语言辅导:C技巧(内存分配:更换策略,不要为难内存)...
  8. 大学四年,因为这8个网站,我成为同学眼中的学霸。
  9. Ubuntu安装JDK,搭建java环境
  10. ASCII、ANSI、UNICODE及UTF-8编码
  11. ecshop实现弹出登录框
  12. CSS实现背景图片自适应屏幕大小
  13. oracle报1653解决办法,“IMP-00058: 遇到 ORACLE 错误 1653”,如何解决?
  14. 数据挖掘十大算法之决策树详解(2)
  15. wallpaper 壁纸提取
  16. 使用DoraCloud在Proxmox虚拟化平台搭建桌面云
  17. 如何保障微服务架构下的数据一致性
  18. 家里装电线时,为啥说“走顶”比“走地”好
  19. vue 页面文字转播放声音 (SpeechSynthesisUtterance)
  20. [听风]TBC单体插件头像显示ShadowedUnitFrames

热门文章

  1. 前端零基础入门(八):background的妙用_css精灵
  2. yocto 工程目录结构及大概含义
  3. 微信H5页面生成图片并长按下载
  4. [转]text和content方法的区别
  5. 微信生成公众号带参数二维码用户头像 加上文字生成图片(三)
  6. Chrome浏览器下载任何东西都提示 - [ 失败,下载错误 ] -已完美解决
  7. 用python写注册登录_如何用python 写注册,登录功能的测试
  8. 计算机上没有保存任何数据源,[microsoft][ODBC 驱动程序管理器]未发现数据源名称并且未指定默认驱动程序...
  9. 地摊经济大火之后,如何从零开始摆摊创业?
  10. 【C++引用超详细笔记, 引用、指针和值传递的汇编级辨析,对象、继承和引用】