2016-02-25 63 views
1
Private Sub btnOne_Click(sender As Object, e As EventArgs) Handles btnOne.Click 
    txtAnswer.AppendText(1) 
End Sub 

所以這是我的代碼(它是0到9和小數點點)。如何讓這更高效?

我工作的計算器的任務,我的問題是,我可以讓這個更有效,所以我沒有大量的代碼做同樣的事情?

我曾考慮設置一個函數來讀取按鈕的內容並將它們添加到文本框中,但操作按鈕和清除按鈕只會添加到文本框而不是執行分配給它們的代碼。

回答

1

您可以創建數字按鈕的一種方法,其價值增加了​​標籤的對象。然後,你可以參考標籤對象追加到文本

Private Sub NumericButtons_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim btn As Button 
    btn = sender 
    txtAnswer.AppendText(btn.Tag) 
End Sub 
+0

爲什麼'Tag'而不是'Text'? – Andrew

+0

爲什麼文字和不標籤...一打或另一半。有多種方法可以做到這一點。我選擇了標籤,如果作者有文本One,Two等等......但是知道這似乎是最好的方法。 – Sorceri

+0

我猜數字1的按鈕在其Text屬性中會有'1',這就是爲什麼我認爲它更好。否則,他將不得不重複「Tag」屬性中的文本。我從來沒有看過計算器拼寫的數字。 :P – Andrew

0

您可以創建就像一個函數,但是它應該閱讀從發件人的Text物業數量,並只分配的數字按鈕,該功能在OnClick事件。

其他按鈕將有自己的OnClick方法,並且當您在其中某些按鈕中找到常見行爲時,您應該製作一個類似於此例的通用函數。也許你可以做的另一種通用功能適用於所有+-/x運營商來說,這是適當的。

+0

謝謝你,我原本以爲這會工作,但我無法得到它的工作,但我可以看到我的錯誤與Sorceri評論。另外,感謝操作員的提示,我會解決這個問題。謝謝:) – ChrisMellor

+0

如果數字在文本中,我認爲您可以在沒有問題的情況下使用該屬性。 – Andrew

+0

你最終使用了什麼,@ChrisMellor? – Andrew