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

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwfjyy.html