我正在製作一個簡單的計算器。我厭倦了在每個按鈕中分配事件處理程序,這是效率低下的。使用僅一個事件處理程序按下按鈕時獲取文本
我只想要一個事件處理程序在按下按鈕時獲取按鈕內的文本。
如何做到這一點?
Private Sub num1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles co.Click
numPressed = num1.Text
End Sub
我正在製作一個簡單的計算器。我厭倦了在每個按鈕中分配事件處理程序,這是效率低下的。使用僅一個事件處理程序按下按鈕時獲取文本
我只想要一個事件處理程序在按下按鈕時獲取按鈕內的文本。
如何做到這一點?
Private Sub num1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles co.Click
numPressed = num1.Text
End Sub
在點擊事件:
Dim button as Button = sender
Dim theTextYouWant as String = button.Text
只需添加你想用一個函數來處理事件,並檢測其內部按鈕奔按下:
Private Sub num1_Click(sender As Object, ByVal e As EventArgs) _
Handles co.Click, co2.Click, co3.Click 'etc
Dim btn As Button = CType(sender, Button)
numPressed = btn.Text
End Sub
你可以有效地添加處理您的button's click event
在運行期間這樣,
我假設你是你的buttons
在panel
的內部,稱爲PnlBtns
。
'Traversing through panel and adding a common handler for buttons
For each ctrl in PnlBtns.controls
If TypeOf ctrl is button then
AddHandler ctrl.Click, AddressOf CommonClickHandler
end if
Next
'Common Handler for all of your buttons.
Private Sub CommonClickHandler(ByVal sender As System.Object, ByVal e As System.EventArgs)
MsgBox(ctype(sender,button).text)
End Sub
你能分享你的代碼嗎? – spajce 2013-03-11 10:34:51
你確定要這樣做嗎?如果您嘗試過,我認爲您不會再將您的演示文稿與您的實施結合起來。 – 2013-03-11 10:41:00