永发信息网

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

答案:3  悬赏:30  手机版
解决时间 2021-11-18 15:22
C# Form 里的KeyDown不起作用,怎么破。
最佳答案
简单,只需要设置窗体属性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事件关联起来了???我怀疑你的程序没有关联起来。这样检查:

全部回答
0个引用,说明你这个函数没有被调用过,所以你的事件肯定没有关联这个函数。
代码发给我看看追问

代码就多了一个初始化。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
武警应该是都已经撤回了,今天是出什么大事
香港冷冻卵子可以多少钱?去那么多天要办什么
日本人在新年这一天见面会说什么?(中日加拼
一汽奔腾经销处地址在什么地方,想过去办事,
求reine des fleurs花之女王破坏神ゼロ高清大
中考数学模拟卷,150的满分,你的孩子能及格
厨柜洗碗盆尺寸多少比较合适?
一个数的25%加上2/5等于6.8,这个数是多
平邑万庄搬迁安置房有产权吗?
湖南邵阳出口产品
卡号623065尾号是4698是哪个行的卡
帆的笔顺笔画顺序
画家为什么不用笔不颜料就能咔嚓一声画下来?
77和90两个数中,更接近80。
求新四大神兽全名
推荐资讯
1.53米53公斤的女生应该穿多大号的衣服和裤子
12v电源上面的out是什么意思
心理为什么具有可测性
关于英文他和她
东大门先生女士地址有知道的么?有点事想过去
中化石油加油站(顺兴加油站)地址好找么,我有
所有形近字
少年起床发现自己成透明人是什么电影
日语翻译:融化 用日语怎么说
金杯变速箱只有三档有传动轴的响声
学为贵英语(重庆解放碑店)地址在哪,我要去那
聚四氟乙烯管材的诱导应力是多少
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?