Vb.net在窗体上而非textbox控件上捕捉键盘上按下的键

本文介绍了如何通过设置窗体的keypreview属性为true来捕获键盘事件,并提供了两种实现方式,包括使用form_keydown和form_keypress方法,分别演示了如何响应Esc、F4和F5按键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前一直苦苦纠结怎么实现这个问题,今天无意间发现了 窗体上有 keypriview这个属性
这里写图片描述
后经过查找相关资料,了解它是用于窗体捕捉键盘上按下的键

只要新建一个窗体,将此属性设置为true,便可以轻松实现这个功能。

方法一:
使用提交为 me.keydown完成

    Private Sub form_keypress(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.Escape Then
            Dim messge As New MSG
            messge.head.Text = "即将退出系统"
            messge.msgP.Text = "按下enter退出系统,esc返回..."
            messge.Show()
        End If
        If e.KeyCode = Keys.F4 Then
            Dim messge As New MSG
            messge.head.Text = "F4"
            messge.msgP.Text = "你按下了F4"
            messge.Show()
        End If
        If e.KeyCode = Keys.F5 Then
            Dim messge As New MSG
            messge.head.Text = "F5"
            messge.msgP.Text = "你按下了F5"
            messge.Show()
        End If
    End Sub

这样可以轻松捕捉键盘上的所有键
esc举例:
这里写图片描述
F4 举例
这里写图片描述
F5举例
这里写图片描述

这里再例举一种方法:handles me.keypress

 Private Sub form_keypress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress
        If e.KeyChar = ChrW(27) Then
            Dim messge As New MSG
            messge.head.Text = "即将退出系统"
            messge.msgP.Text = "按下enter退出系统,esc返回..."
            messge.Show()
        End If
        If e.KeyChar = Chr(115) Then
            Dim messge As New MSG
            messge.head.Text = "F4"
            messge.msgP.Text = "你按下了F4"
            messge.Show()
        End If
        If e.KeyChar = Chr(116) Then
            Dim messge As New MSG
            messge.head.Text = "F5"
            messge.msgP.Text = "你按下了F5"
            messge.Show()
        End If
    End Sub

但是,不幸的是这种方式不能捕捉到F1-F12,以及一些特殊的键,比如shift等

当然还可以用handles me.keyup也是可以实现的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值