Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 70 Or KeyCode = 102 Then '大写的F和小写的f
Image1Visible = True
Image2Visible = False
End If
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 70 Or KeyCode = 102 Then
Image2Visible = True
Image1Visible = False
End If
End Sub
vb中Keyup与Keydown区别为:触发不同、焦点不同、用途不同。
一、触发不同
1、Keyup:Keyup的事件在键盘按键按下时立即触发。
2、Keydown:Keydown的事件在键盘按键放开时立即触发。
二、焦点不同
1、Keyup:Keyup事件触发的时候需要保证控件拥有焦点。
2、Keydown:Keydown事件触发的时候不需要保证控件拥有焦点。
三、用途不同
1、Keyup:Keyup用于 *** 作前验证检测 *** 作条件是否符合。
2、Keydown:Keydown用于 *** 作完成后的界面修改更新。
经过自己的实验和度娘结合,ehandled=true,在KeyPress事件中却可以屏蔽掉“空格”这个键盘输入,在KeyDown中却屏蔽不了,所以你会出现一个控制加一个space的情况。
同样如果你想屏蔽诸如F1,F2这样的功能控制键,则用KeyPress事件则不起作用了,而需要在KeyDown事件中处理,所以这里可以得到一个结论:
1如果想处理a,b,c,d这样的字符键,则需要用KeyPress事件来处理屏蔽问题。
2如果想处理F1,F2,F3,F4这样的功能控制键,则需要用KeyDown事件来处理屏蔽问题。
由此可知,space这个键只是普通的字母键,应该由KeyPress处理。如果想屏蔽一切的空格处理。可以重载ProcessCmdKey这个方法。下面的代码是百度来的,实验效果确实可以屏蔽空格的输入,意思是直接不处理。如果修改返回值为false,就是keydown或者keypress里面自己处理。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (msgMsg == 0x0100 && keyData == KeysSpace)
{ //0x0100即WM_KEYDOWN常数
return true;//按空格键不作处理
}
return baseProcessCmdKey(ref msg, keyData);
}
以上就是关于VB Keyup Keydown事件全部的内容,包括:VB Keyup Keydown事件、vb中Keyup与Keydown有什么区别、c# keydown事件问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)