2013-04-10 29 views
1

我想寫一個代碼,將點擊一個按鈕後增加一個值在visual basic.these是我已經嘗試過的代碼,但我沒有達到我的目標增加一個值的視覺基礎我卡住

代碼1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim votecount As Integer = Integer.Parse(showcountwinnie.Text) 
    votecount += 1 
    showcountwinnie.Text = votecount.ToString() 
End Sub 

代碼的兩個

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim votes As Integer 
    votes = 0 
    votes += 1 
    votes = showcountwinnie.Text 
End Sub 

碼連續3

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim votewinnie As Integer 
    votewinnie = showcountwinnie.value 
    votewinnie = votewinnie + 1 
    showcountwinnie.value = votewinnie 
End Sub 
+0

方案二不應該編譯,設置'OPTION STRICT'上。選項三被註釋掉。第一種方法應該可行,所以你應該給我們更多的背景信息。它是winforms或asp.net,**什麼意思是「沒有達到我的目標」**? – 2013-04-10 11:44:13

+1

第一個不做什麼? – user1937198 2013-04-10 11:44:31

+0

它是winforms不是asp.net。 – 2013-04-10 11:49:52

回答

3

不是最完美的解決方案,但工作:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim vote As Integer 
    If showcountwinnie.Text <> "" Then 
     vote = Val(showcountwinnie.Text) 
    Else 
     vote = 0 
    End If 

    vote += 1 
    showcountwinnie.Text = vote 
End Sub 
+0

作爲一個評論:如果文本不是數字,Integer.Parse會炸燬你的臉。更好的用戶Integer.Tryparse - 它稍微複雜一點,但有一個更好的控制流程 - – 2013-04-10 11:59:29

+0

@ChristianSauer或他可能會使用val()函數。如果傳遞的參數不是數字,它將返回0。 – 2013-04-10 12:01:25

+0

果然,這會更有意義。 – Jontatas 2013-04-10 12:02:12

0

守則1似乎是正確的。建議保持一個斷點位於第1行,並檢查代碼行是否得到執行,而你按一下按鈕

+0

問題是當文本框/標籤爲空時代碼將會中斷。 – Jontatas 2013-04-10 12:05:31

+0

是的你是對的。我認爲我也看到你的答案。我猜想我們都貼在一起。反正謝謝:) – 2013-04-10 12:06:43

+0

好的,我會繼續努力謝謝 – 2013-04-11 08:39:31

0

試試這個

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Static votecount As Integer = 0 
    votecount += 1 
    showcountwinnie.Text = votecount.ToString() 
End Sub 
0
showcountwinnie.Text = showcountwinnie.text + 1 

這種方法是利用本身+1每次點擊

8

快速和骯髒的方式:

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
      showcountwinnie.Text = (Val(showcountwinnie.Text) + 1).ToString() 
     End Sub 

更優雅的方式:

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
      Dim votecount As Integer 
      If Integer.TryParse(txt_UTC.Text, votecount) Then 
       votecount += 1 
      Else 
       ' whatever you want to do with votecount 
       votecount = 0 
      End If 
      txt_UTC.Text = votecount.ToString() 
     End Sub 
+0

謝謝你的工作 – 2013-04-11 08:36:35

+0

太棒了。不要忘記接受答案,如果它的工作。 – George 2013-04-11 14:06:01

-1

有點晚,但我們的代碼1不會工作的解析方法需要兩個參數。
在代碼2中,您的意圖是通過其他方式分配東西,例如 showcountwinnie.Text = votes
無論如何,這個showcountwinnie是什麼?一個文本框?一個標籤?

1

使用上述建議的代碼,我張貼這確實有輕微的變化爲我工作的代碼

Private Sub txtQuantity_Click() 
    Dim vote As Integer 
    If txtQuantity.Text <> "" Then 
     vote = Val(txtQuantity.Text) 
    Else 
     vote = 0 
    End If 

    vote = vote + 1 
    txtQuantity.Text = vote 

End Sub