zoukankan      html  css  js  c++  java
  • Atitit。监听键盘上下左右方向键事件java js jquery c#.net

    Atitit。监听键盘上下左右方向键事件java js jquery   c#.net

     

    1. Keyword1

    2. 通用的实现流程1

    3. Js的实现1

    3.1. Bind control ,event handeler1

    3.2. key_press_hadler4up2

    4. Java的实现3

    5. C# .net winformn4

    6. 参考4

     

    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://blog.csdn.net/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

  • 相关阅读:
    mysql 复制表数据,表结构的3种方法
    MySQL 存储过程使用表名做参数
    关于mysql engine(引擎)的疑问
    mysql存储过程之循环
    mysql 命令大全
    关于mysql的表名/字段名/字段值是否区分大小写的问题
    navicat for mysql 快捷键(原创)
    解决"Subquery returns more than 1 row"sql查询错误
    mysql:“Access denied for user 'root@IP地址'"
    MySQL常用经典语句
  • 原文地址:https://www.cnblogs.com/attilax/p/5963412.html
Copyright © 2011-2022 走看看