日期:2014-05-18  浏览次数:21433 次

c#中KeyPress事件无反应
刚学c#遇到键盘事件怎么没有反应?开发环境为VS2005,有如下问题:(keypreview = true)

1、一般窗体事件为:private void Form1_Load(object sender, EventArgs e),在右上角的下拉菜单就可选择。
键盘事件为:private void Form1_KeyPress(object sender, KeyPressEventArgs e),怎么在菜单里没有啊?我是用手一行行写出来的,是不是就得用手写啊?

2、有一个label1标签。代码如下:

 private void Form1_KeyPress(object sender, KeyPressEventArgs e)
  {
  switch (e.KeyChar)
  { 
  case (char )Keys.Back :
  label1 .Text ="退格键" +(int)Keys.Back +"\n" ;
  break ;
  case (char)Keys.Tab:
  label1.Text = "Tab键" + (int)Keys.Tab + "\n" ;
  break;
  case (char)Keys.Enter:
  label1.Text = "回车键键" + (int)Keys.Enter + "\n";
  break;
  case (char)Keys.Space:
  label1.Text = "空格键" + (int)Keys.Space + "\n" ;
  break; 
  default :
  label1.Text = e.KeyChar + ":" + (int)e.KeyChar + "\n" ;
  break;
  }
  }
在键盘上按下如上键之后,应该在label1标签上出现相应的提示,可是怎么什么反应也没有啊?这是怎么回事?我是少了哪个步骤了,还是哪里设置错了?

------解决方案--------------------
焦点的问题,如果你的form有个textbox控件,你的光标再textbox里,那么form的keypress是不会执行的.