设置快捷键(3种方式)
(1)设置快捷键并显示出来
![](/assets/blank.gif)
![](/assets/blank.gif)
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事件
缺点:当程序失去焦点的时候这个热键(快捷键)就不管用了!
![](/assets/blank.gif)
![](/assets/blank.gif)
private void TextBox1_KeyDown(object sender, KeyEventArgs e){if (e.Control && e.KeyCode == Keys.A){//操作 }}
View Code
(3)注册和注销系统热键
①添加HotKey类
![](/assets/blank.gif)
![](/assets/blank.gif)
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
②设置快捷键和事件
![](/assets/blank.gif)
![](/assets/blank.gif)
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种方式)相关推荐
- VirtualBox虚拟机网络设置(四种方式)
VirtualBox是什么 VirtualBox 是一款 x86 虚拟机软件.原由德国innotek公司开发,2008年Sun收购了Innotek,而Sun于2010年被Oracle收购,2010年1 ...
- nc65用友uap平台按钮怎样设置快捷键的实现方式
nc65用友uap平台按钮怎样设置快捷键的实现方式 public class CloseAction extends NCAction {private static final long seria ...
- 华为--DHCP实验(dhcp设置的两种方式,不分配dhcp地址范围的方式,分配固定地址的方式)
文章目录 前言 一:实验环境 1.1:基本原理 1.2:原理总结 1.3:实验软件 1.4:实验目的 1.5:华为DHCP实验拓扑图 二:实验过程 2.1:交换机设置 2.2:路由器(R1)设置 2. ...
- echarts 饼图的一种---南丁格尔玫瑰图按照百分比大小进行排序以及颜色设置的两种方式(普通设置颜色和渐变色设置)
本篇博文是记录一下我在开发过程中遇到的一个问题,那就是对于南丁格尔玫瑰图(或者饼图)如何根据百分比大小进行排列,可以很直观的看出数据高低. 首先给大家展示一下官方的样式,具体代码可以去官网上查看:ht ...
- VirtualBox虚拟机网络连接设置的四种方式
这里我先给大家大致讲解下VBox的网络配置及应用. VirtualBox的提供了四种网络接入模式,它们分别是: 1.NAT 网络地址转换模式(NAT,Network Address Transl ...
- 转:VirtualBox虚拟机网络连接设置的四种方式
VirtualBox是一款SUN出品的非常优秀的虚拟机程序,版本也非常齐全,你可以在官网上找到适合各种操作系统平台的版本. 这里我先给大家大致讲解下VBox的网络配置及应用. VirtualBox的提 ...
- virtualbox配置apache_VirtualBox虚拟机网络设置(四种方式)
VirtualBox的提供了四种网络接入模式,它们分别是: 1.NAT 网络地址转换模式(NAT,Network Address Translation) 2.Bridged Adapter 桥接模式 ...
- python 设置时区_python时区设置的两种方式
第一种用pytz 第二种手动加时区再转换格式 a= datetime.datetime.today() o = datetime.timedelta(hours=8) (a+o).strftime(& ...
- 沉浸式状态栏设置的几种方式
先上效果图 总共有三种方法,下面一一介绍: 第一种 布局中顶层容器配置: android:clipToPadding="true" android:fitsSy ...
- css文字溢出省略号设置的两种方式
1.多行文本 display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden; 2.通 ...
最新文章
- android采用MVP完整漫画APP、钉钉地图效果、功能完善的音乐播放器、仿QQ动态登录效果、触手app主页等源码...
- MYSQL 集群的数据节点错误信息归档
- python 只执行一次_Python 定时任务实现只执行一次的方法
- OSS- OSS brower 登陆失败
- u3d 模版测试 失败_基于Python的HTTP接口自动化测试框架实现
- 苏州科技大学计算机学院 李双娴,苏州大学计算机科学与技术学院第十二次研究生代表大会顺利召开...
- 计算机二级换c语言,09年计算机二级C语言辅导:C技巧(内存分配:更换策略,不要为难内存)...
- 大学四年,因为这8个网站,我成为同学眼中的学霸。
- Ubuntu安装JDK,搭建java环境
- ASCII、ANSI、UNICODE及UTF-8编码
- ecshop实现弹出登录框
- CSS实现背景图片自适应屏幕大小
- oracle报1653解决办法,“IMP-00058: 遇到 ORACLE 错误 1653”,如何解决?
- 数据挖掘十大算法之决策树详解(2)
- wallpaper 壁纸提取
- 使用DoraCloud在Proxmox虚拟化平台搭建桌面云
- 如何保障微服务架构下的数据一致性
- 家里装电线时,为啥说“走顶”比“走地”好
- vue 页面文字转播放声音 (SpeechSynthesisUtterance)
- [听风]TBC单体插件头像显示ShadowedUnitFrames
热门文章
- 前端零基础入门(八):background的妙用_css精灵
- yocto 工程目录结构及大概含义
- 微信H5页面生成图片并长按下载
- [转]text和content方法的区别
- 微信生成公众号带参数二维码用户头像 加上文字生成图片(三)
- Chrome浏览器下载任何东西都提示 - [ 失败,下载错误 ] -已完美解决
- 用python写注册登录_如何用python 写注册,登录功能的测试
- 计算机上没有保存任何数据源,[microsoft][ODBC 驱动程序管理器]未发现数据源名称并且未指定默认驱动程序...
- 地摊经济大火之后,如何从零开始摆摊创业?
- 【C++引用超详细笔记, 引用、指针和值传递的汇编级辨析,对象、继承和引用】