KeyValue与KeyData与KeyCode区别(转)

KeyValue与KeyData与KeyCode区别(转)

KeyPress事件
KeyPressEventArgs参数

Handled /是否处理过KeyPress事件
KeyChar //按下的键对应的字符

如果I,则keychar为i,如果shift+i,则keychar为I。
如果是Ctrl+I,或ALt+I,根本不会得到一个keypress事件,因为他们是特殊的键序列,并非通过KeyPress发送。
需要KeyDown

KeyDown
KeyEventArgs参数
   Alt 获取一个值,该值指示是否曾按下 Alt 键。
   Control 获取一个值,该值指示是否曾按下 Ctrl 键。
   Handled 获取或设置一个值,该值指示是否处理过此事件。
   KeyCode 获取 KeyDown 或 KeyUp 事件的键盘代码。
   KeyData 获取 KeyDown 或 KeyUp 事件的键数据。
   KeyValue 获取 KeyDown 或 KeyUp 事件的键盘值。
   Modifiers 获取 KeyDown 或 KeyUp 事件的修饰符标志。这些标志指示按下的 Ctrl、Shift 和 Alt 键的组合。
   Shift 获取一个值,该值指示是否曾按下 Shift 键。
SuppressKeyPress 获取或设置一个值,该值指示键事件是否应传递到基础控件。

如果同时按下了Ctrl+Shift+I
KeyData   Keys.Ctrl+Keys。Shift+Keys。I
KeyCode Keys。I
Modifiers Keys。Ctrl+Keys。Shift
Alt false
Ctrl true
Shift true
KeyValue 73
KeyChar 不可用

尽管我们处理了KeyDown来获得特殊的字符,但是有些特殊字符(比如箭头键)在默认的情况下并不传送给控件。为了启用他们,自定义控件可以重写来自基类的IsInputKey方法

如果想在键盘事件之外获悉修饰键的状态,可以通过Control类的静态属性ModifierKeys来访问这类信息。

void MyCon-Click(object sender,EventArgs e)
{
if(Control.ModifierKeys==Keys.Control)
{
}
}
检查在鼠标点击事件中,Ctrl键是否是唯一被按下的修饰键。

时间: 2025-01-05 13:50:28

KeyValue与KeyData与KeyCode区别(转)的相关文章

C# 键盘KeyCode与keyValue

在C#中,经常用到键盘事件,用到键盘事件时,就需要知道键的KeyCode(键),或者是keyValue(键值). 如:Enter的键盘事件,KeyCode = Enter,keyValue = 13 private void Key_down(object sender, KeyEventArgs e) { if (e.KeyValue == 13)           //   if(e.KeyCode == Keys.Enter) { MessageBox.Show("13");

管理关联对象和NSDictionary区别

一.问题引出 为类添加关联对象: void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy) 为NSDictionary添加对象: - (void)setObject:(ObjectType)anObject forKey:(KeyType <NSCopying>)aKey; objc_setAssociatedObject可以理解为给object对象(NS

(转)datagridview 自定义列三步走

本文转载自:http://blog.csdn.net/zx13525079024/article/details/4814642 我们如果想自定义实现datagridview的某列,例如是datagridview的某列显示为一个日期控件datatimepicker,或者颜色拾取器控件colorpicker,我们可以大致按如下模式来设计 1. 设置列,创建一个类,使之继承DataGridViewColumn列 public partial class DataGridViewCalendarCol

Redis 基础应用

Redis 基础应用(一) ============================================================================== 概述: ============================================================================== Redis简介  1.简介 ★Redis REmote DIctionary Server(Redis) 是一个由Salvatore Sanfili

The NoSQL System

Unlike most of the other projects in this book, NoSQL is not a tool, but an ecosystem composed of several complimentary and competing tools. The tools branded with the NoSQL monicker provide an alternative to SQL-based relational database systems for

NoSQL生态系统(nosql ecosystem)

Unlike most of the other projects in this book, NoSQL is not a tool, but an ecosystem composed of several complimentary and competing tools. The tools branded with the NoSQL monicker provide an alternative to SQL-based relational database systems for

redis和memcache的对比

redis和memcache的对比: Memcached: Memcached是一个自由开源的,高性能,分布式内存对象缓存系统.本质上,它是一个简洁的key-value数据库(存储系统).键值对:一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度.提高可扩展性. Redis :redis是一个key-value存储系统.Redis 是一个高性能的key-value数据库; redis和memcache 区别: 1.存储方式: memecache 把数据全部存

C#中方向键与回车键切换控件焦点

环境:界面上有TextBox,ComboBox等控件. 不建议把左右方向键都用来切换焦点,否则你在TextBox里面改变光标所在字符位置就不方便了. 方法一:笨方法,需为每个控件单独注册事件处理 以TextBox为例,代码如下: 1 private void textbox_KeyDown(object sender, KeyEventArgs e) 2 { 3 if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Enter) 4 { 5 e.Supp

输入框联想

要做一个车牌号输入的输入框联想提示功能,要求比较简单,故没有利用ajax去数据库查询. 车辆多为京津冀地区的. js代码如下: <head> <style type="text/css">          .item:hover{           background-color: Gray;           cursor:pointer;          }         .hidden{           width:100%;