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

2020/03/24 20:58 · VB.NET · 22阅读 · 0评论
阿里云·云小站,新老用户同享,1核2G云服务器低至89元/年,229元/3年;2核4G3M3年639元
摘要:

最近写程序遇到一个问题,场景如下:几个查询条件+一个按钮,用户在选好(填好)查询条件后都需要点击按钮才能触发事件进行搜索,我就想有没有办法此时可以按下“回车键”进行查询,后面发现两种情况,如果按钮是获得焦点的,那么可以直接用下面的代码实现

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

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

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

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

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

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

后面发现两种情况,

如果按钮是获得焦点的,

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

 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

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

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

您可能感兴趣的文章

本文地址:https://www.huazai186.com/post/43.html
文章标签:
版权声明:本文为原创文章,版权归 羽化飞翔 所有,欢迎分享本文,转载请保留出处!

文件下载

上一篇:
下一篇:
腾讯云618云聚惠活动火热进行中,1核2G-288元/3年,2核4G3M-1288元/3年,2核8G5M-1688元/3年,4核8G5M-1999元/3年

 发表评论


表情