給按鈕添加熱鍵和快捷鍵


1>如果你只是想實現一個很簡單的用戶按下Esc或者Enter來簡單控制當前窗體的行為,So easy .!
 窗體有兩個屬性只需簡單設置就可以。
 比如你設置 Me.CancelButton = Me.btnExit而且你代碼是這么寫D 。
     Public Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        Application.Exit()
      End Sub
那么當你按下Esc的時候就可以觸發btnExit.Click事件,當然會調用上面的過程,自動退出程序。
同樣道理如果你設置Me.AcceptButton = Me.btnExit,當你按下Enter的時候會執行上面的過程。
這里需要注意的是一個窗體的AcceptButton和CancelButton都只能設置一個,設置了AcceptButton只是表示用戶按下Enter的時候觸發對應的Button的Click事件,不是調用其對應的處理過程。
概念問題。):

2>如果你想實現熱鍵,So easy too !^_^

只需給對應的Button.Text做文章就可以了。
大家一定記得MainMenu里設置熱鍵的方法吧!
只需設置text=&MenuText即可,比如你設置mnuFile.Text="&File"你按下Alt+F的時候就可以訪問file菜單。
這一招對button一樣適用,往下我就不用說了吧!
再說下去你不說自己弱智那就是我弱智了。嘿嘿 !

3>通過快捷鍵訪問窗體中的按鈕,這個有點學問,也就一點。

注意了,進入正題。):

第一步首先設置窗體的KeyPreview =true
至於為什么,msdn如是說:
當此屬性設置為 true 時,窗體將接收所有 KeyPress、KeyDown 和 KeyUp 事件。在窗體的事件處理程序處理完該擊鍵后,然后將該擊鍵分配給具有焦點的控件。例如,如果 KeyPreview 屬性設置為 true,而且當前選定的控件是 TextBox,則在該窗體的事件處理方法處理擊鍵后,TextBox 控件將接收按下的鍵。要僅在窗體級別處理鍵盤事件並且不允許控件接收鍵盤事件,請將窗體 KeyPress 事件處理方法中的keyPressEventArgs.Handled 屬性設置為 true。

不用俺解釋了吧!
不過上面說的每一句話都值得斟酌。自己想吧!

第二步就是在窗體的Keyup處理過程中寫東西了,當然keydown也是可以D。keypress就值得斟酌了。):
代碼大體是這個樣子的:
  Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
        If e.KeyData = Keys.Control + Keys.End Then
            btnExit_Click(Nothing, EventArgs.Empty)
        Else if.....
         ........
        End If
  End Sub
如果你想在keyup里用RaiseEvent btnExit.Click(),呵呵你會看到一個錯誤。
提示你所raise的不是當前窗體的事件,別只看表面,試試Raise窗體的事件行不行吧!


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com