永发信息网

C# Form 里的KeyDown不起作用,怎么破。

答案:3  悬赏:30  手机版
解决时间 2021-11-18 15:22
  • 提问者网友:情歌越听越心酸
  • 2021-11-18 10:47
C# Form 里的KeyDown不起作用,怎么破。
最佳答案
  • 五星知识达人网友:渊鱼
  • 2021-11-18 11:20
简单,只需要设置窗体属性KeyPreview = true即可


简单测试如下

另外,在KeyDown处理程序中
 if(e.KeyData == Keys.W )  //<--注意这里的写法!
{
     Console.WriteLine("按下了W键!");
}追问我已经设置了,如题中图片追答你的KewDown中的判断有些问题,用
if(e.KeyData == Keys.W ) //<--注意这里的写法!
{
Console.WriteLine("按下了W键!");
}
这样可以获得的是按下了W键,而不管大小写!追问if 和switch 没什么区别吧,而且我也试过if,也不管用,头疼死了。追答注意: 用 e.KeyData 而不是 e.KeyCode
用if与用switch是一样的追问这个我也试过了,不管用,不过我发现你的KeyDown是有一条引用的,而我的没有,而且我在我的KeyDown里加了一个断点,发现不管怎么按键程序都不进入KeyDown里,是不是为遗漏了什么,如初始化什么的。追答
截图是我的测试代码。因为我用的vs2015,所以代码中会出现“一个引用”提示。这个提示无关紧要。
另外:你的初始化步骤没错误!
===
哦,对啦!你检查一下你的KeyDown事件处理程序是否与Form1的KeyDown事件关联起来了???我怀疑你的程序没有关联起来。这样检查:

全部回答
  • 1楼网友:妄饮晩冬酒
  • 2021-11-18 14:05
0个引用,说明你这个函数没有被调用过,所以你的事件肯定没有关联这个函数。
  • 2楼网友:老鼠爱大米
  • 2021-11-18 12:57
代码发给我看看追问

代码就多了一个初始化。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯