2013-08-30 97 views
0

我想做一個基本的計算器,我有我的按鈕數字0-9和所有的數學符號。我想將我的鍵盤(數字鍵盤)按鈕連接到他們,我做了一些搜索,並看到一些例子'if'語句。 是否可以使用select case來做到這一點? 哪個鍵盤事件最適合處理鍵盤輸入? KeyUp,KeyDown或KeyPress? KeyPress給我錯誤,'='不是一個有效的操作符。鍵盤輸入與選擇案例

回答

1

這當然可以用Select Case
對此,最好的關鍵事件大概是KeyDown,所以只要用戶按下按鍵,按鈕就會被點擊。 (如果你會使用KeyUp,那麼它會等待他們釋放的關鍵,這可能不是他們所期望的。)
這如何可能看起來一個例子:

Private Sub Form1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown 
    Select Case e.KeyCode 
     Case Keys.NumPad1 
      Button1.PerformClick() 
     Case Keys.NumPad2 
      Button2.PerformClick() 
     Case Keys.NumPad3 
      Button3.PerformClick() 
     'Continue adding other keys here' 
    End Select 
End Sub 

你需要改變與您的代碼匹配的按鈕名稱。
您可能還需要將表單的KeyPreview屬性設置爲True,以便提升KeyDown事件。 (你可以在設計器中這樣做)

+0

我可以立即調用'Button1_Click'事件嗎?還是使用Button1.PerformClick()更好? – Vahx

+0

'PerformClick()'更好! – OneFineDay

+0

您應該使用'PerformClick()',因爲'Button1_Click'的參數'sender'和'e'與'Form1_KeyDown'不同。 – camerondm9

0

確保在表單的屬性中設置了KeyPreview。

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown 
    Select Case e.KeyCode 
     Case Keys.NumPad0 
      btn0.PerformClick() 
     Case Keys.NumPad1 
      btn1.PerformClick() 
     Case Keys.NumPad2 
      btn2.PerformClick() 
     Case Keys.NumPad3 
      btn3.PerformClick() 
     Case Keys.NumPad4 
      btn4.PerformClick() 
     Case Keys.NumPad5 
      btn5.PerformClick() 
     Case Keys.NumPad6 
      btn6.PerformClick() 
     Case Keys.NumPad7 
      btn7.PerformClick() 
     Case Keys.NumPad8 
      btn8.PerformClick() 
     Case Keys.NumPad9 
      btn9.PerformClick() 
    End Select 
    End Sub