当用户按下键盘上的向上箭头,而按钮具有焦点时,必须抓住按钮。我写了这段代码来处理按钮的KeyUp事件:当焦点在按钮上时按下键盘上的箭头按钮
private void btnValider_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
//do stuff
}
}
但是这个函数没有处理按向上的箭头键。
我不知道我想做什么是可能的,或者如果我必须从窗体处理此事件?
在表单中添加'PreviewKey = TRUE;'而初始化。然后你可以检查你的表单中的输入,例如'void meForm_KeyUp(object sender,KeyEventArgs e){if(btnValidaer.HasFocus){/ * logic here * /}}'或者你可以添加'IMessageFilter'接口,或者你可以重写'WndProc(ref Message msg)'方法 –
参见[KeyUp'的文档:](https://msdn.microsoft.com/en-us/library/system.windows.forms.control.keyup(v = vs .110).aspx) - _“某些键,如TAB,RETURN,ESC和**箭头键**由控件自动处理。要使这些键引发KeyUp事件,必须重写IsInputKey方法您的表单上的每个控件都必须重写IsInputKey的代码,以确定是否按下了其中一个特殊键并返回true值。“_ – stuartd
@ m.rogalski PreviewKey仅在Form上可用,并且不会帮助捕捉箭头键 – Kodre