VB Keyup Keydown事件

VB Keyup Keydown事件,第1张

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事件问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9587299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存