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

如何实现按钮button获得ctrl和space的按键功能.
void button1_KeyDown(object sender, KeyEventArgs e)
  {
  if (e.Control == true && e.KeyCode == Keys.Space)
  {
  button1.Text = e.KeyCode.ToString();
  }
  //button1.Text = e.KeyCode.ToString();
  }

我想实现一个功能,那就是当按钮button1激活时,按着ctrl和space的时候,将实现一个指定的操作,可是发现这个捕获总是错误的,我按ctrl和space的时候,e.KeyCode 并不等于space,而是另一个值,这到底是怎么回事??

请问具体怎么实现啊??


------解决方案--------------------
我也还没有试过组合键的代码
------解决方案--------------------
感觉你的思路好像有点问题。KeyDown事件是当某个键按下时触发该事件。按下一个键触发一次,所以你是得不到该组合键的信息的。只能得到某一个键的信息。
我是使用消息来处理组合键信息的。
------解决方案--------------------
我也有2楼的感觉
------解决方案--------------------
组合键的效果键盘钩子可以实现,但是感觉使用API还是不爽。
换个思路,你要实现什么逻辑需要捕捉CTRL+SPACE键盘动作,是要控制某个文本框录入内容的输入法吗?如果是这个,可以用其它方法实现………………
------解决方案--------------------
学习。。。UP
------解决方案--------------------
bool bt=true
void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyChar == (char)32)
{
if(bt)//按下你的SPACE,调用CLICK { 
button1.Text = e.KeyCode.ToString();
}
}
//button1.Text = e.KeyCode.ToString();
}
------解决方案--------------------
有专门的类或者方法指示 是否按下CTRL、SHIFT

很久以前看过,MSDN上查查