Atitit。监听键盘上下左右方向键事件java js jquery c#.net
Atitit。监听键盘上下左右方向键事件java js jquery c#.net
3.1. Bind control ,event handeler1
1. Keyword
键盘事件 方向键 上下左右 按键监听
2. 通用的实现流程
Bind (control,key_eventHandel)
key_eventHandel
获得当前控件
var now=$(".selected");
3. Js的实现
3.1. Bind control ,event handeler
key_eventHandel)
document.onkeydown=function(event){
var e = event || window.event || arguments.callee.caller.arguments[0];
if(e && e.keyCode==40 || e && e.keyCode==39){//下,右
//alert('40=下键,39=右键');
var now=$(".selected");
key_press_hadler(now);
return false;
}
if(e && e.keyCode==38 || e && e.keyCode==37){//上,左
//alert('38=上键,37=左键');
var now=$(".selected");key_press_hadler4up(now);
}
};
作者:: ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
3.2. key_press_hadler4up
function key_press_hadler(obj)
{
// alert(obj);
var next=$(obj).next();
if(next.length==0){return;};
window.setTimeout(function(){set_page_info(next)},10);
// ;
next.addClass("selected"); $(obj).removeClass("selected");
}
function key_press_hadler4up(obj)
{
// alert(obj);
var next=$(obj).prev();
if(next.length==0){return;};
$(obj).removeClass("selected");
next.addClass("selected");
window.setTimeout(function(){set_page_info(next)},10);
}
4. Java的实现
JFrame frame = new JFrame("") {
// 重写这个方法
// @Override
protected void processWindowEvent(WindowEvent e) {
System.out.println(e.getID());
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
// KeyEvent evt = (KeyEvent) e;
// if (evt.getKeyCode() == KeyEvent.VK_ESCAPE &&
// evt.isControlDown()) {
//
// }
// MsgBox.show("close a");
Android的实现
Android手机常用的三个键,home键,back键及menu键。
在应用程序里我们经常会对它们经常进行一定的处理,方便用户使用。
首先我们要明确点击三个键时系统干了什么事,
如果没有进行监听处理,
点击home键时,系统默认只执行应用程序的当前显示的Activity的onStop()方法后跳出界面。
而点击back键时,系统默认执行的是应用程序当前Activity的finish()方法后跳出界面。
而点击menu键时,系统默认不进行任何处理。
2.监听Menu键,注意:在没有实体Menu键的机器上,只能在sdk版本10以下才会出现Menu键
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode==KeyEvent.KEYCODE_BACK&&event.getRepeatCount()==0){
// event.startTracking();
Toast.makeText(this, "监听返回键BACK", Toast.LENGTH_SHORT).show();
dialog();
return false;
}else if(keyCode==KeyEvent.KEYCODE_MENU){
Toast.makeText(this, "监听菜单键MENU", Toast.LENGTH_SHORT).show();
return false;
}//由于HOME键为系统键,此处不能捕获,需要重写onAttachedToWindow()
else if(keyCode==KeyEvent.KEYCODE_HOME){
Toast.makeText(this, "监听主页键HOME", Toast.LENGTH_SHORT).show();
return false;
}
return super.onKeyDown(keyCode, event);
}
5. C# .net winformn
C#winForm里键盘事件的响应
1,方向键和回车不能够在KeyDown事件里响应.解决方案是重写ProcessCmdKey
2,其原理并不清晰.base.ProcessCmdKey调用父类的键盘事件.
KeyDown函数等于在父类里注册了一个事件响应代码.
//在KeyDown事件里无法捕获方向键,回车.能捕获空格之类
//但是是重写了之后,就不能捕获了.
private void FrmKeyDown_KeyDown(object sender, KeyEventArgs e)
//方向键事件的处理,只能重写ProcessCmdKey,重写的方法体可以自动生成,不用担心.
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
6. 参考
winform键盘事件方向键的响应 - 博客园.html
android--监听按键_行者_新浪博客.html
android 键盘按键监听 - kakaxi1o1的专栏 - 博客频道 - CSDN.NET.html
winform键盘事件(方向键)的响应 - 纳米程序员 - 博客园.html
Atitit。监听键盘上下左右方向键事件java js jquery c#.net的更多相关文章
- cocos2d JS 监听键盘触摸响应事件(cc.EventListener.KEYBOARD)
除了可以监听键盘按键,还可以是终端设备的各个菜单键,都能使用同一个监听器来进行处理. //给statusLabel绑定键盘事件 cc.eventManager.addListener({ event: ...
- 使用JS监听键盘按下事件(keydown event)
1.监听全局键盘按下事件,例如监听全局回车事件 1 $(document).keydown(function(event){ 2 if(event.keyCode == 13){ 3 alert('你 ...
- js监听键盘触发按钮事件,回车提交表单
/*回车提交表单*/ $(document).keydown(function(event){ if(event.keyCode == 13){ //alert('你按下了Enter'); $(&qu ...
- Python监听键盘和鼠标事件
我们可以利用windows提供的api函数来实现对系统键盘事件和鼠标事件的监听,主要利用的是SetWindowsHookEx函数,这个函数可以允许调用者传入一个钩子函数也叫回调函数,当指定的事件发生时 ...
- 阻止事件冒泡js jquery
jQuery之防止冒泡事件 冒泡事件就是点击子节点,会向上触发父节点.祖先节点的点击事件. 以下是html代码部分: <body> <div id="content&quo ...
- js监听键盘事件
用JS监听键盘按下事件(keydown event) 1.监听全局键盘按下事件,例如监听全局回车事件 1 $(document).keydown(function(event){ 2 if(eve ...
- Python使用进程间共享变量来控制两个进程(监听键盘和相机录制)的交互
我有个简单的应用需求: 1. 该应用随时会监听键盘的输入: 2. 当输入指定键时会控制相机录制的启动和关闭. 监听键盘是一个事件循环,相机录制也是一个循环录制的过程.我试着用 Python 启动两个进 ...
- vue如何监听键盘事件中的按键?
原文地址 背景 在一些搜索框中,我们往往需要监听键盘的按下(onkeydown)或抬起(onkeyup)事件以进行一些操作.在原生js或者jQuery中,我们需要判断e.keyCode的值来获取用户所 ...
- Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换
Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换 { "@type":"java.lang.Runti ...
随机推荐
- (转) 网络GET、POST方法
在iOS中,常见的发送HTTP请求(GET和POST)的解决方案有 苹果原生(自带) NSURLConnection:用法简单,最古老最直接的一种方案 NSURLSession:iOS7新出的技术,功 ...
- Spring Struts里用到的设计模式
Bean工厂的Factory模式 AOP的Proxy模式
- [BZOJ 1805] Sail 船帆
Link: BZOJ 1805 传送门 Solution: 一道思路比较巧的线段树的题目 首先可以发现,答案和顺序是没有关系的,都是$\sum_{i=1}^n {H_i∗(H_i−1)/2}$. 那么 ...
- 【AC自动机】zoj3228 Searching the String
对所有模式串建立AC自动机. 每个单词结点要记录该单词长度. 然后在跑匹配的时候,对每个单词结点再处理3个值,代表可重叠的匹配次数,不可重叠的匹配次数,以及“上一次不可重叠的匹配位置”,这样结合单词长 ...
- 【树形DP】Codeforces Round #395 (Div. 2) C. Timofey and a tree
标题写的树形DP是瞎扯的. 先把1看作根. 预处理出f[i]表示以i为根的子树是什么颜色,如果是杂色的话,就是0. 然后从根节点开始转移,转移到某个子节点时,如果其子节点都是纯色,并且它上面的那一坨结 ...
- spark DiskBlockManager
RDD本身presist可以是本地存储,本地存储级别的持久化实现方式如下: DiskBlockManager负责管理和维护block和磁盘存储的映射关系,通过blockId作为文件名称,然后如果是多个 ...
- 移植u-boot-2012.4到Tiny6410_1G_Nandflash
Uboot-2012.4的启动流程: 自从Uboot-2010后的Uboot在文件结构和启动流程方面都有非常大的改变,所以移植Uboot-2012.4的时候还是费了我不少时间, 首先在编译Uboot的 ...
- Linq中比较日期大小(部分比较)
问题:Linq中比较两个时间的年月日部分 表中某个字段的时间和系统时间比较大小(只比较年月日) 思路一:转换成字符串比较 var queryable = dbContext.Table .Where( ...
- 正则表达式之 /^(\d)$/
^(\d)$就是0-9的任意一个数字, ^表示以...开头,\d表示0-9的数字,$表示以...结尾,
- 轻松加愉快的 Kubernetes 安装教程
轻松加愉快的 Kubernetes 安装教程 马哥Linux运维 2 days ago 作者:无聊的学习者 来源:见文末 在国内安装 K8S,一直是大家很头痛的问题,各种麻烦,关键是还不知道需要下载什 ...