重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
专业从事成都网站制作、成都网站建设、外贸营销网站建设,高端网站制作设计,重庆小程序开发,网站推广的成都做网站的公司。优秀技术团队竭力真诚服务,采用H5建站+CSS3前端渲染技术,成都响应式网站建设,让网站在手机、平板、PC、微信下都能呈现。建站过程建立专项小组,与您实时在线互动,随时提供解决方案,畅聊想法和感受。
If sender Is Me Then MsgBox(e.KeyData.ToString vbCrLf sender.ToString)
End Sub
Private Sub Button1_KeyDown(sender As Object, e As KeyEventArgs) Handles Button1.KeyDown
If sender Is Me Then MsgBox(e.KeyData.ToString vbCrLf sender.ToString)
End Sub
这样就行了,第一个过程if语句结果为真,第二个过程if语句结果为假,你的所有问题都可通过if判断语句解决,msgbox代码只是做个测试,实际为你响应form键盘事件的代码。
接收事件是无法屏蔽的,但是你可以不处理这个事件啊,就当它没发生不就行了
拦截窗口程序消息可以解决
参考 VB王国荣API讲座 讲消息的那章
几个API就可以搞定
你说的触发具体是什么意思,如果你只是想调用leave事件,那直接调用那个事件的方法就行了(参数可以传空值),如果你是想用按钮控制leave是否生效,这里面有很多问题,因为你离开textbox必然触发leave,而此时是不知道你去点哪个按钮了,你可以需要换种方式,这两个按钮具体是做什么用的,跟leave什么关系
窗体的KeyPress事件里面写enter按下事件执行button单机代码就好了啊。
Dim key_state As Integer = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.KeyPreview = True '设置窗体响应键盘操作
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
'MsgBox(e.KeyCode) '这行开启可以测试你输入的按键代码
If key_state = 0 Then e.Handled = True '取消操作
Select Case e.KeyCode
Case 49 '按键1
'................操作脚本
Case 50 '按键2
'................操作脚本
End Select
End Sub
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
e.Handled = True '取消操作
End Sub
'*******************************************************************************另一种方法
AddHandler Me.KeyDown, AddressOf Form1_KeyDown '需要时加入事件
RemoveHandler Me.KeyDown, AddressOf Form1_KeyDown '不需要时删除事件