如何捕获 KeyUp 事件? (请提供代码示例)

发布于 2024-09-19 04:02:13 字数 208 浏览 5 评论 0原文

我需要捕捉 KeyDown & 尤其1,2,3,4,5,6,7,8,9键盘按钮的KeyUp事件。

效果如何?
我可以捕获 KeyDown 事件,但是 KeyUp 呢?
请提供一些简单的代码。

I need to catch KeyDown & especially KeyUp events for 1,2,3,4,5,6,7,8,9 keyboard buttons.

How does it do ?
I can catch KeyDown event but what about KeyUp ?
Please, provide some simple code.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

谜泪 2024-09-26 04:02:13
private void Form1_Load(object sender, EventArgs e)
{
    this.KeyUp += new KeyEventHandler(Form1_KeyUp);
}

void Form1_KeyUp(object sender, KeyEventArgs e)
{
    switch (e.KeyCode)
    {
        case Keys.NumPad1:
            break;
        case Keys.NumPad2:
            break;
            //...
    }
}
private void Form1_Load(object sender, EventArgs e)
{
    this.KeyUp += new KeyEventHandler(Form1_KeyUp);
}

void Form1_KeyUp(object sender, KeyEventArgs e)
{
    switch (e.KeyCode)
    {
        case Keys.NumPad1:
            break;
        case Keys.NumPad2:
            break;
            //...
    }
}
浊酒尽余欢 2024-09-26 04:02:13
     private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyData == Keys.D1) // number 1
        {
            MessageBox.Show("Hello");
        }
    }
     private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyData == Keys.D1) // number 1
        {
            MessageBox.Show("Hello");
        }
    }
£噩梦荏苒 2024-09-26 04:02:13

如果您需要逻辑完全相同,那么您可以将相同的事件处理程序连接到要捕获输入的控件的 KeyUp 和 KeyDown 事件。

// this occurs as part of Initialisation via the designer or you can hook up manually
myControl.KeyDown += myControl_KeyChange;
myControl.KeyUp += myControl_KeyChange;
// ...

private void myControl_KeyChange(object sender, KeyEventArgs e)
{
    switch( e.KeyCode )
    {
        case Keys.1:
        {
            // handle the 1 key being pressed
            break;
        }        
        case Keys.2:
        {
            // handle the 2 key being pressed
            break;
        }
        // etc
    }
}

If you need the logic to be exactly the same then you can hook up the same event handler to both the KeyUp and KeyDown events of the control you want to capture input on.

// this occurs as part of Initialisation via the designer or you can hook up manually
myControl.KeyDown += myControl_KeyChange;
myControl.KeyUp += myControl_KeyChange;
// ...

private void myControl_KeyChange(object sender, KeyEventArgs e)
{
    switch( e.KeyCode )
    {
        case Keys.1:
        {
            // handle the 1 key being pressed
            break;
        }        
        case Keys.2:
        {
            // handle the 2 key being pressed
            break;
        }
        // etc
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文