首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >键盘事件问题

键盘事件问题
EN

Stack Overflow用户
提问于 2010-06-10 06:56:36
回答 1查看 565关注 0票数 2

我必须在一个TextBox - SHIFT +8(在numpad上)中捕获以下键盘事件。这也意味着NumLock将被打开。当我尝试下列SHIFT + UP时没有打印:

代码语言:javascript
复制
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Shift && e.KeyCode == Keys.NumPad8)
        Console.WriteLine("SHIFT + UP");

    Console.WriteLine(e.KeyCode);
    Console.WriteLine(e.KeyData);
    Console.WriteLine();
}

但是CTRL +8(在numpad上)正在工作。

代码语言:javascript
复制
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Control && e.KeyCode == Keys.NumPad8)
        Console.WriteLine("CTRL + UP");
}

Update:在一次移位+8按下打印以下内容:

代码语言:javascript
复制
ShiftKey
ShiftKey, Shift

Up
Up

ShiftKey
ShiftKey, Shift

有人能解释一下,为什么SHIFT +8没有被解雇,但CTRL +8正在工作?

我编写了+ UP,因为用户希望用数字箭头和SHIFT键导航,但是他的NumLock也会打开。所以我才抓到Keys.NumPad8.

一切都好,佩塔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-10 07:12:16

它不能工作,因为shift+numpad8 = UP和当您将这些键按在一起时:

代码语言:javascript
复制
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    string shift = e.Shift.ToString();    //false
    string code = e.KeyCode.ToString();   //up
}

如果您同时按shift和up键,而不是shift - true code - up。

因此,如果要捕获shift & numpad8,只需检查键即可。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3012270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档