[英]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
屬性,但結果仍然相同。
附加信息:
addentry
和editentry
只會調用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.