winforms 在Windows窗体上使用功能键

z2acfund  于 2022-11-16  发布在  Windows
关注(0)|答案(1)|浏览(186)

要求用户在文本框中输入一个数字,如果他们按下F5,代码将对文本框中的值执行一些操作。当用户按F5键时,keyup事件会触发并正确处理,但现在每次我在文本框中输入字符时,keyup事件也会触发。有没有办法关闭它?或者它只是我在调试时必须处理的事情?如果我在那里没有断点也没关系,但我是否希望为每个字符触发该事件?

ct3nt3jp

ct3nt3jp1#

订阅textbox事件Keyup
在事件处理程序中检查KeyCode。如果它等于Keys.F5,则执行按下F5时要执行的操作。同时通知系统您已处理该事件。在所有其他情况下,执行未按下F5时要执行的操作。

private void OnKeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.F5)
    {
        this.HandleF5();
        e.Handled = true;
    }
    else
    {
        // not F5
        ...
    }
}

private void HandleF5()
{
    // On F5 clear the textbox and sound a beep
    this.textBox1.Text = String.Empty;
    System.Media.SystemSounds.Beep.Play();
}

如果您要在Alt-F5/Ctrl-F5上执行不同的操作,请考虑同时检查AltControl属性。

相关问题