要求用户在文本框中输入一个数字,如果他们按下F5,代码将对文本框中的值执行一些操作。当用户按F5键时,keyup事件会触发并正确处理,但现在每次我在文本框中输入字符时,keyup事件也会触发。有没有办法关闭它?或者它只是我在调试时必须处理的事情?如果我在那里没有断点也没关系,但我是否希望为每个字符触发该事件?
ct3nt3jp1#
订阅textbox事件Keyup在事件处理程序中检查KeyCode。如果它等于Keys.F5,则执行按下F5时要执行的操作。同时通知系统您已处理该事件。在所有其他情况下,执行未按下F5时要执行的操作。
Keys.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上执行不同的操作,请考虑同时检查Alt和Control属性。
Alt-F5
Ctrl-F5
Alt
Control
1条答案
按热度按时间ct3nt3jp1#
订阅textbox事件Keyup
在事件处理程序中检查KeyCode。如果它等于
Keys.F5
,则执行按下F5时要执行的操作。同时通知系统您已处理该事件。在所有其他情况下,执行未按下F5时要执行的操作。如果您要在
Alt-F5
/Ctrl-F5
上执行不同的操作,请考虑同时检查Alt
和Control
属性。