visualbasic(vb.net)中按下键盘上某个按键事件触发(以回车键为例)

第1部分:应用场景

最近写程序遇到一个问题,

几个查询条件+一个按钮,

用户在选好(填好)查询条件后都需要点击按钮才能触发事件进行搜索,

我就想有没有办法此时可以按下“回车键”进行查询。

第2部分:解决方法

后面发现两种情况,

如果按钮是获得焦点的,

那么可以直接用下面的代码实现:

 Private Sub  Button1_KeyDown(ByVal sender As Object, ByVal e As  System.Windows.Forms.KeyEventArgs) Handles Button1.KeyDown
     If e.KeyCode = Keys.Enter Then
        MsgBox("你按下了回车键!")
   End If
 End Sub

但是存在一个问题,

就是我们并不能保证这个按钮获得了焦点,

所以这边想到另外一个重载的方法:

Public Class Form1
     Public Sub  New()
        MyBase.New()
        MyBase.KeyPreview = True '在此加入下面这句话,使在窗口中任何的按键都只执行一个响应
         InitializeComponent()
     End Sub
     Protected Overrides Sub  OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
        Dim key As String = e.KeyChar
        If key = Microsoft.VisualBasic.ChrW(13) Then '若按下回车键
            Button1.Focus() '把焦点附给button1
             Button1.PerformClick() '执行Click命令
        End If
     End Sub
     Private Sub  Button1_Click(ByVal sender As System.Object,  ByVal e As  System.EventArgs) Handles Button1.Click
        MsgBox("你按下了回车键!")
     End Sub
End Class

这样就能实现即使焦点是在添加条件的控件上,

单击回车键,也可以触发查询。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容