2013-04-10 55 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