簡體   English   中英

如何在vbnet中創建按鈕快捷方式

[英]how to create button shortcuts in vbnet

我嘗試為按鈕創建鍵盤快捷鍵。

這是我的代碼

 Private Sub form_main_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
    If Keys.ControlKey + Keys.N Then
        'btn_add.PerformClick()
        addentry()
    ElseIf Keys.ControlKey + Keys.E Then
        'btn_edit.PerformClick()
        editentry()
    End If
End Sub

問題是,甚至當我按下其他按鈕時,該函數仍被調用。 我也嘗試使用窗體keydown屬性,但結果仍然相同。

附加信息:

  • 函數addentryeditentry只會調用form_addedit
  • btn_add將要求addentry
  • btn_edit將要求進行editentry

首先是Keys.***只是一個枚舉。 其中的每個條目只是代表鍵控代碼的數字 因此,您當前僅將數字加在一起。

Keys.ControlKey是17, Keys.N是78,因此您實際上是在寫:

If 17 + 78 Then

因為它大於0,所以它將始終返回True

要執行您要求的操作,必須通過檢查傳遞給事件的事件參數 (EventArgs)來檢查按下了哪個鍵。

但是,由於您正在使用KeyPress事件,因此無法從事件args中獲取鍵枚舉,因此我建議您改用KeyDown事件。

Private Sub form_main_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    If e.Control = True AndAlso e.KeyCode = Keys.N Then
        addentry()
    ElseIf e.Control = True AndAlso e.KeyCode = Keys.E Then
        editentry()
    End If
End Sub

如果在按鈕的.Text屬性中放置與號,則Alt + key將觸發按鈕,例如B&utton1將觸發Alt + u。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM