如何为 vb.net 中的按钮提供 "ctrl + " 快捷键

How to give a "ctrl + " shortcut key for a button in vb.net

如何为 vb.net 中的按钮添加“ctrl +”快捷方式。例如我需要在按下 ctrl + s 时执行保存按钮的点击事件。

Winforms 解决方案

在您的表单 class 中,将其 KeyPreview 属性 设置为 true,例如在表单构造函数中设置它,可以在此处或通过设计器进行设置:

Public Sub New()
    ' This call is required by the designer.
    InitializeComponent()

    ' Add any initialization after the InitializeComponent() call.
    Me.KeyPreview = True
End Sub

然后您需要做的就是处理表单的 KeyDown 事件,如下所示:

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
    If (e.Control AndAlso e.KeyCode = Keys.S) Then
        Debug.Print("Call Save action here")
    End If
End Sub

WPF解决方案(不使用MVVM模式)

将此添加到您的 .xaml 文件

<Window.Resources>
    <RoutedUICommand x:Key="SaveCommand" Text="Save" />
</Window.Resources>

<Window.CommandBindings>
    <CommandBinding Command="{StaticResource SaveCommand}" Executed="SaveAction" />
</Window.CommandBindings>

<Window.InputBindings>
    <KeyBinding Key="S" Modifiers="Ctrl" Command="{StaticResource SaveCommand}" />
</Window.InputBindings>

更改您的按钮定义以包含 Command="{StaticResource SaveCommand}",例如:

<Button x:Name="Button1" Content="Save" Command="{StaticResource SaveCommand}" />

在你的Code Behind (.xaml.vb)中放入你的函数来调用保存例程,例如:

Private Sub SaveAction(sender As Object, e As RoutedEventArgs)
    Debug.Print("Call Save action here")
End Sub