C#开发实例 键盘篇
键盘的操作控制:
键盘和鼠标一样是重要输入设备的一部分。开发过程中,会涉及到很多的键盘操作控制。
2.1获取键盘信息
①获取组合键
Windows中有很多默认的组合键,如Ctrl+v,Ctrl+A。本例实现了获取TextBox中组合键的功能,用到KeyEventArgs类中的KeyCode属性,KeyCode属性用来获取KeyUp,KeyDown事件
private void textBox_KeyDown(object sender, KeyEventArgs e)
{
if ((e.Control == true) && (e.KeyCode == Keys.A))
MessageBox.Show("您按下了Ctrl+A");
}

②获取功能键
功能键包括F1,F2,空格键等,获取功能键
private void textBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F1)
MessageBox.Show("您按下了F1","提示",MessageBoxButtons.RetryCancel);//显示重试按钮
}

③判断Caps lock是否锁定
用户在使用键盘输入的时候,可以对有些按键进行锁定,如Numlock,CapsLock。主要用到的API函数为GetKeyState 需要手动引入方法所在的类库。
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "GetKeyState")]
public static extern int GetKeyState(int intkey);//intkey:虚拟键键码
主要代码:
private void button1_Click(object sender, EventArgs e)
{
string strCheak = "判断CapsLock是否锁定\n";
int intCapsLock = GetKeyState(); if (intCapsLock == )
strCheak += "CapsLock未锁定\n";
else
strCheak += "CapsLock锁定\n";
MessageBox.Show(strCheak, "判断是否锁定");
}

④将回车映射成Tab键
在用户登录界面,很多时候用户输入完用户名,按下enter键可以直接切换鼠标焦点,进入输入密码的文本框。本例主要用到KeyEventArgs类中的KeyValue和SendKeys类的Send方法。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == )
{
SendKeys.Send("{TAB}");
}
}

2.2键盘热键设置
①屏蔽Alt+F4组合键关闭窗口
在程序使用过程中,有时候希望屏蔽Alt+F4键关闭窗口,主要用到的是KeyEventArgs类中的Alt属性,KeyValue属性,和Handled属性,Alt和Handled属性都为bool型。
private void Frm_KeyDown(object sender, KeyEventArgs e)
{
if (e.Alt && e.KeyValue == )
e.Handled = true;
}
②按Esc关闭窗口
程序使用过程中,为了方便操作,通过Esc键退出窗口。主要用到的是Application类的Exit方法。
private void Frm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Escape) {
MessageBox.Show("关闭窗口");
Application.Exit();
}
}

2.3键盘操作在实际中的应用
C#开发实例 键盘篇的更多相关文章
- C#开发实例 鼠标篇
鼠标的操作控制: 鼠标是计算机的一个重要组成部分,有很多默认的设置,如双击时间间隔,闪烁频率,移动速度等,本篇使用C#获取这些基本的信息. 1.1获取鼠标信息 ①实例001 获取鼠标双击时间间隔 主要 ...
- Bluetooth篇 开发实例之九 和蓝牙模块通信
首先,我们要去连接蓝牙模块,那么,我们只要写客户端的程序就好了,蓝牙模块就相当于服务端. 连接就需要UUID. #蓝牙串口服务SerialPortServiceClass_UUID = ‘{00001 ...
- jquery mobile自己定义webapp开发实例(一)——前言篇
用jquery mobile做了一段时间的webapp开发,准备用自己的一个小demo做一个模块化的分享 点击demo演示 手机演示二维码: 此demo已经是比較老的版本号,用户体验流畅度确实还存在非 ...
- Bluetooth篇 开发实例之八 匹配
自己写的App匹配蓝牙设备,不需要通过系统设置去连接. 匹配和通信是两回事. 用过Android系统设置(Setting)的人都知道蓝牙搜索之后可以建立配对和解除配对,但是这两项功能的函数没有在SDK ...
- C#软件开发实例.私人订制自己的屏幕截图工具(七)加入放大镜的功能
上一篇:C#软件开发实例.私人订制自己的屏幕截图工具(六)加入配置管理功能 因为截图时可能须要精确截取某一部分,所以须要放大镜的功能,这样截取的时候才更easy定位截图的位置. 加入PictureBo ...
- Winform常用开发模式第一篇
Winform常用开发模式第一篇 上一篇博客最后我提到“异步编程模型”(APM),之后本来打算整理一下这方面的材料然后总结一下写篇文章与诸位分享,后来在整理的过程中不断的延伸不断地扩展,发现完全偏离了 ...
- Cocos2d-x 3.X手游开发实例详解
Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰 ...
- Express开发实例(2) —— Jade模板引擎
前一篇通过helloworld,简单介绍了Express中的开发,本篇继续深入的学习express的模板. 关于Jade的用法,网上有很多,本篇参考:Jade语法 安装相关模块 在实验代码前,应该先安 ...
- RDIFramework.NET开发实例━表约束条件权限的使用-Web
RDIFramework.NET开发实例━表约束条件权限的使用-Web 在上一篇文章“RDIFramework.NET开发实例━表约束条件权限的使用-WinForm”我们讲解了在WinForm下表约束 ...
随机推荐
- Android--下拉框
一. 实现效果图如下 Android 中的下拉框为Spinner 组件,其效果图如上图片 二. 实现代码 布局代码如下 <?xml version="1.0" encodin ...
- Android EditText使用详解
一:新建HelloEditText工程 新建一个Hello world详细步骤可以参见 Android教程之三:第一个Android应用,HelloWorld 创建设置如下: Project name ...
- http状态码介绍
基本涵盖了所有问题HTTP 400 – 请求无效HTTP 401.1 – 未授权:登录失败HTTP 401.2 – 未授权:服务器配置问题导致登录失败HTTP 401.3 – ACL 禁止访问资源HT ...
- 使用github托管代码心
这次使用github托管代码并没有下载客户端git for windows,而是使用eclipse里面自带的git上传了hello world这个项目,步骤如下: 1.首先创建项目:file-> ...
- java日期处理总结
Java日期时间使用总结 一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式 ...
- 史上最全的HTML、CSS知识点总结,浅显易懂。
来源于:http://blog.csdn.net/qiushi_1990/article/details/40260447 一,html+css基础1-1Html和CSS的关系学习web前端开发基础技 ...
- Java中唯一数的生成
唯一数的生成很简单,基本上以时间为基础进行生成.在JDK里面已经有java.util.UUID类可以生成唯一的随机数.如果希望生成的唯一数为特定的格式,那么就需要自己来生成唯一数了.生成唯一数时有两个 ...
- 通过url链接登录其他系统
目的:A系统通过链接跳转到其它系统(如B系统)并登录 技术方案 1.A系统用户登录B系统方案 1.A系统用户账号已经和B系统账号绑定,直接模拟登录 2.A系统用户账号未和B系统账号绑定 ...
- shell 命令遇到的一些问题
1. command not found 一般都是未安装,需要root 权限去安装服务,就可正常使用.比如rz, sz, crontab, sendemail, lftp等 2. rz 传输失败,输 ...
- system.badimageformatexception 未能加载文件或程序集问题解决
原因是项目CPU默认X86我的系统是X64,将目标平台改为 Any CPU就可以了; 解决方法: