C#:实现快捷键自定义设置
代码下载
需求
项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示:

当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中。
最终的效果如下图所示:

核心代码如下所示:
private void keyDown(object sender, KeyEventArgs e)
{
StringBuilder keyValue = new StringBuilder();
keyValue.Length = ;
keyValue.Append("");
if (e.Modifiers != )
{
if (e.Control)
keyValue.Append("Ctrl + ");
if (e.Alt)
keyValue.Append("Alt + ");
if (e.Shift)
keyValue.Append("Shift + ");
}
if ((e.KeyValue >= && e.KeyValue <= ) ||
(e.KeyValue >= && e.KeyValue <= ) || //a-z/A-Z
(e.KeyValue >= && e.KeyValue <= )) //F1-F12
{
keyValue.Append(e.KeyCode);
}
else if ((e.KeyValue >= && e.KeyValue <= )) //0-9
{
keyValue.Append(e.KeyCode.ToString().Substring());
}
this.ActiveControl.Text = "";
//设置当前活动控件的文本内容
this.ActiveControl.Text = keyValue.ToString();
} private void keyUp(object sender, KeyEventArgs e)
{
string str = this.ActiveControl.Text.TrimEnd();
int len = str.Length;
if (len >= && str.Substring(str.Length - ) == "+")
{
this.ActiveControl.Text = "";
}
}
| 字符 | e.KeyValue |
| a-z|A-Z | 65-90 |
| F1-F12 | 112-123 |
| 0-9 | 48-57 |
| PageUp | 33 |
| PageDown | 34 |
| End | 35 |
| Home | 36 |
| 左(←) | 37 |
| 上( ↑ ) | 38 |
| 右(→) | 39 |
| 下( ↓ ) | 40 |
接着,为textbox控件分别设置_KeyDown和_KeyUp事件,并在其中调用以上2个核心函数。
如下所示:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
keyDown(sender, e);
} private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
keyUp(sender, e);
}
相关文章
版权
原创文章,转载请著名出处:C#:实现快捷键自定义设置(http://www.cnblogs.com/hongfei/p/4148710.html)
C#:实现快捷键自定义设置的更多相关文章
- C#:实现快捷键自定义设置(转)
项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示: 当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中. 最终的效果如下图所示: private ...
- 自定义word快捷键,设置插入图片快捷键
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 自定义word快捷键,设置插入图片快捷键 文件→选项→自定义功能区 选择键盘快捷方式 自 ...
- SecureCRT 快捷键总结 设置快捷键
http://oldboy.blog.51cto.com/2561410/907098 自己整理的一些 查看 Alt + Enter 全屏 菜单 Alt + f + n 克隆会话窗 ...
- eclipse快速复制一行代码(向下/向上)快捷键修改设置
eclipse快速复制一行代码(向下/向上)快捷键修改设置 2015年10月05日 17:46:57 xiaoguanglgc 阅读数:20906 标签: eclipse快速复制一行快捷键冲突英特尔 ...
- Visual Studio Code教程:基础使用和自定义设置
一.界面介绍 1.1 界面介绍 1.2 文件夹和文件的打开 文件——>打开文件夹/打开文件 1.3 新建文件/文件夹 新建文件: a. 文件——>新建文件: b. 按Ctrl+n; c. ...
- Android Studio 常用快捷键以及设置
常用快捷键: Ctrl+Q 出现文档提示 跟ecplise的 鼠标悬浮差不多 Ctrl+Alt+t 包围代码 Home End 移动光标到文本首和文本尾 Alt+回车 导入当前包 Ctrl+Alt+O ...
- Netsharp产品标识自定义设置:产品名称、版权、LOGO等
阅读本文请先阅读Netsharp下载及环境搭建 Netsharp本身是一个业务基础平台,Netsharp本身基础上开发的业务产品对客户才有价值,客户看到的产品应该不是Netsharp而是具体的业务产品 ...
- navigaitonBar的自定义设置
navigaitonBar的自定义设置 navigationBar介绍: navigationbar就是一个导航视图控制器上面的导航栏. 如何设置这个navigationbar? 首先我们来探讨如何来 ...
- PHP集成环境自定义设置PHP版本,同时运行多个php版本,700个PHP版本随时切换,一键开启常用模块。
本文采用我自己开发的纯绿色版WAMP环境(我将这个WAMP环境命名为PHPWAMP) (PHPWAMP默认集成VC,不需要单独安装) 那么什么是WAMP环境?WAMP这个词是什么意思? Windows ...
随机推荐
- LeetCode(四)
Find Kth Largest Number public class Solution { public int findKthLargest(int[] nums, int k) { retur ...
- 发布一个UDP调试助手
UDP协议适用于那种频繁通信,但是可以容忍一些丢包的应用,比如GPS的定位应用. 调试UDP助手,可以定时发送,输出文本, 记录收到时间. 1. 该工具基于IOCP网络模型,调试UDP服务使用的一个工 ...
- Java script基础 回顾
一.语法 代码与C#相似,变量使用的是var引用出来,包含所有类型:可以直接使用,不用定义. 也是有内置分类的.例如:var b="10" var c=10;一个是字符串一个是整 ...
- 教你把UltraEdit如何注册激活教程及UltraEdit 22.0.0.48 官方中文版下载
UltraEdit 22.0.0.48 官方中文版下载:链接: http://pan.baidu.com/s/1i3f7mZV 密码: r23v2015-5-30号更新 第一.关闭网络连接(或者直接拔 ...
- Java里this的作用和用法
this, 一个官方的说法是,this首先是一个对象,它代表调用这个函数的对象. 根据面向对象的基本语法,每当调用变量或者函数的时候,都要按照类名.变量(函数)的格式来调用,意即每个变量或函数都必须属 ...
- 『TCP/IP详解——卷一:协议』读书笔记——06
2013-08-20 14:41:01 2.8 最大传输单元MTU MTU,最大传输单元:以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节.这个不同网络对应的传输上限 ...
- JSONP跨域数据调用
引自:http://kb.cnblogs.com/page/139725/ Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有”src”这个属性的标签都拥有跨域的能力,比如& ...
- hive数据类型学习
Hive的内置数据类型可以分为两大类:(1).基础数据类型:(2).复杂数据类型.其中,基础数据类型包括: TINYINT, SMALLINT, INT, BIGINT, BOOLEAN, FLOAT ...
- PHP程序设计经典300例
不知道怎么转载,原文源自:http://bbs.php100.com/u-htm-uid-330857.html 来自:php100钟泽锋 第一例<?php $s_html="< ...
- Delete characters
Description In this exercise, you will get two strings A and B in each test group and the length of ...