博主并没有多少Windows平台下程序的开发经验,一年前使用过MFC设计过一个指纹识别系统的页面,后来就没有使用过几次。现在C#课程实验要求实现一个简易计算器,为了便于快速录入数据,使用键盘会比使用鼠标点击按钮高效很多。比如按下小键盘的数字1,能够实现和用鼠标点击按钮1一样的效果就行。

  

  百度了一遍,找到的教程几乎是一模一样的,各种csdn转载的博文上都提供了好几种方法,但试了没有一个管用,不知道什么地方配置出错了。后来Google了一下,点击第一个搜索结果,StackOverFlow的问答,顺利解决了我的问题。

  要实现自定义键盘按键,只要覆写protected override bool ProcessCmdKey(ref Message msg, Keys keyData)这个方法(函数)就好了。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
// if it is a hotkey, return true; otherwise, return false
switch (keyData)
{
case Keys.NumPad0:
//焦点定位到控件button_num_0上,即数字0键上
button_num_0.Focus();
//执行按钮点击操作
button_num_0.PerformClick();
return true;
case Keys.NumPad1:
button_num_1.Focus();
button_num_1.PerformClick();
return true;
//......
default:
break;
}
return base.ProcessCmdKey(ref msg, keyData);
}

  完整的项目示例代码请看这篇文章:http://www.cnblogs.com/zyfdeblog/p/4567071.html

  原创文章,转载时务必附上原文地址。谢谢。

WinForm中为按钮添加键盘快捷键,超简单,亲测有效的更多相关文章

  1. 通过源码了解ASP.NET MVC 几种Filter的执行过程 在Winform中菜单动态添加“最近使用文件”

    通过源码了解ASP.NET MVC 几种Filter的执行过程   一.前言 之前也阅读过MVC的源码,并了解过各个模块的运行原理和执行过程,但都没有形成文章(所以也忘得特别快),总感觉分析源码是大神 ...

  2. Winform中的dataGridView添加自动编号

    1.Winform中的dataGridView添加自动编号:http://blog.csdn.net/ohyoyo2014/article/details/38346887 2.如何为datagrid ...

  3. vue添加swiper的正确方式亲测---切图网

    在vue项目中,我们在做图片轮播的方式和传统切图不同,传统切图中我们一般采用非常强大的swiper来完成,而在vue中一般依赖vue-awesome-swiper组件来完成(vue-awesome-s ...

  4. 在Winform中菜单动态添加“最近使用文件”

    最近在做文件处理系统中,要把最近打开文件显示出来,方便用户使用.网上资料有说,去遍历“C:\Documents and Settings\Administrator\Recent”下的最近文档本.文主 ...

  5. winform中文本框添加拖拽功能

    对一个文本框添加拖拽功能: private void txtFolder_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataP ...

  6. 给Winform中的TabControl添加更现代的拖拽功能

    上周接到一个开发任务,大致是允许APP中的Tab拖动以成为一个独立Tab,脱离之前的TabControl,就是现在Web拖动标签页创建新窗口的功能,现在浏览器必备的功能,应该很简单,然而我司采用的Do ...

  7. bootstraptable为行中的按钮添加事件

  8. 关于iTerm2中颜色配置及快捷键使用技巧(亲测)

    https://github.com/mbadolato/iTerm2-Color-Schemes http://chriskempson.com/projects/base16 (同事用的) 按照g ...

  9. css实现按钮点击效果(超简单)

    在html中设置class: <button class="button1">click</button> css中如下所示: .button1{    p ...

随机推荐

  1. bootstrap在jsp中怎么没有效果?

    页面顶部<!DOCTYPE html> 

  2. Oracle自增列

    一.介绍: 在设计数据库时,有时候希望表的某一列为自增列,例如编号,本文就介绍如何在oracle数据库中实现自增列,需要两个步骤: 1)构建序列(sequence) 在oracle中sequence就 ...

  3. 生成ldf数据库文件

    .在我的电脑中删除LOG文件 c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将生成新的LOG,大小只有500多K

  4. Regional Changchun Online--Ponds

    网址:http://acm.hdu.edu.cn/showproblem.php?pid=5438 Ponds Time Limit: 1500/1000 MS (Java/Others)    Me ...

  5. unresolved external symbol "public: virtual __thiscall...错误

    今天自己在编写类模板的程序时,遇到了如下的错误:unresolved external symbol "public: virtual __thiscall...错误 调试修改了半天程序,还 ...

  6. Android开发-API指南-Manifest介绍

    App Manifest 英文原文:http://developer.android.com/guide/topics/manifest/manifest-intro.html 采集(更新)日期:20 ...

  7. com学习(五)——实现多接口

    从第五回开始到第七回,咱们用 ATL 写了一个简单的 COM 组件,之所以说简单,是因为在组件中,只实现了一个自定义(custom)的接口 IFun.当然如果想偷懒的话,我们可以把 200 个函数都加 ...

  8. Windows 7的100M隐藏分区

    1.Windows 7的100MB的隐藏分区是Windows 7的活动分区,类似于Linux的/boot. 这其实有点类似Linux的做法,Linux在安装过程中可以专门分出一个100MB左右的分区作 ...

  9. OSGI.NET 插件启动方法

    在使用OSGI.NET框架来开发插件过程中,有时为了测试一个插件,或运行一个插件,需要启动主个插件,如果没有主窗口程序,那么该 如何启动一个插件,而不是再开发一个主窗口程序(那样是不是太麻烦,仅仅是为 ...

  10. Mac OS X Server 安装与应用

    Mac OS X Server 安装与应用 Mac OS X Server是苹果电脑公司新一代服务器软件.专为OS X和iOS设备.Mac OS X提供服务,现在支持Mavericks,能够轻松共享文 ...