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#:实现快捷键自定义设置
代码下载 C#实现快捷键自定义设置 需求 项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示: 当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中 ...
- 自定义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 ...
随机推荐
- Linux光纖卡配置,磁盤掛載,多路徑設置
Linux光纖卡配置 1.首先根據光纖卡類型加載對應的驅動.我這裡常用的是QLogic和Brocade光纖卡 [root@rhcsasm2 host3]# lspci | grep Fibre - ...
- go sample-base64
GoSample-base64 package mainimport ( "encoding/base64" "fmt")func base64Encode(s ...
- 初识VSTO Addin开发
这篇博客将简单介绍一些VSTO Addin开发的知识. 1. VSTO是什么?我们可以用VSTO做什么? VSTO全称Visual Studio Tool for Office,是可以让我们针对现有的 ...
- Android自动化压力测试之Monkey Test Android常见的错误类型及黑白名单的使用方法(四)
Android常见的错误类型有两种 1.ANR类型 1)在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸) 2)BroadcastReceiver在10秒内没有执行完毕 2.Crash类型 1)异 ...
- Linux解压文件
zip: 解压:unzip filename 解压到tmp文件夹:unzip filename.zip -d /tmp 查看压缩文件而不解压:unzip filename.zip -v tar.gz: ...
- PHP 采集
<?php header("content-type:text/html;charset=gbk"); // 要采集的页面的地址 $url = "http://ww ...
- css3 -- 多列
1.指定分列: E{column-count:2:} --- 两列 E{ -moz-column-count:2: -webkit-column-count:2: } Firefox与webkit实现 ...
- BestCoder Round #73 (div.2)
1001 Rikka with Chess ans = n / 2 + m / 2 1002 Rikka with Graph 题意:n + 1条边,问减去至少一条使剩下的图连通的方案数. 分析:原来 ...
- AC自动机 LA 4670 Dominating Patterns
题目传送门 题意:训练指南P216 分析:求出现最多次数的字串,那么对每个字串映射id,cnt记录次数求最大就可以了. #include <bits/stdc++.h> using nam ...
- linux 添加新硬盘的方法
在服务器上把硬盘接好,启动linux,以root登陆. 比如我新加一块SCSI硬盘,需要将其分成三个区: #fdisk /dev/sdb 进入fdisk模式: Command (m for help) ...