Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 多次点击递增_Vb.net - Fatal编程技术网

Vb.net 多次点击递增

Vb.net 多次点击递增,vb.net,Vb.net,每次单击PictureBox时,我都会增加一个变量+1,但计数固定在1,而不是每次单击PictureBox时都增加到2、3或4 这是在一个方法中,对吗?签名如下: Private Sub PictureBox1_Click(sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.Click Private Sub PictureBox1_Click(sender As Object, e As System.Even

每次单击PictureBox时,我都会增加一个变量+1,但计数固定在1,而不是每次单击PictureBox时都增加到2、3或4


这是在一个方法中,对吗?签名如下:

Private Sub PictureBox1_Click(sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
Private Sub PictureBox1_Click(sender As Object, e As System.EventArgs) Handles PictureBox1.Click  
    Dim AddIncrement As Integer
    AddIncrement = AddIncrement + 1
    Dim Menu As String = AddIncrement
    TextBox1.Text = Menu
End Sub
这可能不是100%准确,但应该很接近。所以你真正拥有的更像这样:

Private Sub PictureBox1_Click(sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
Private Sub PictureBox1_Click(sender As Object, e As System.EventArgs) Handles PictureBox1.Click  
    Dim AddIncrement As Integer
    AddIncrement = AddIncrement + 1
    Dim Menu As String = AddIncrement
    TextBox1.Text = Menu
End Sub
现在我们需要看看AddIncrement变量。此变量的Dim语句位于方法内部。也就是说,每次方法运行时都会重新定义它。每个方法调用实际上都使用不同的变量

要解决此问题,请将变量声明移到方法外部,使其处于类/模块级别:

Private AddIncrement As Integer = 0
Private Sub PictureBox1_Click(sender As Object, e As System.EventArgs) Handles PictureBox1.Click  
    AddIncrement += 1
    TextBox1.Text = AddIncrement.ToString()
End Sub

打开Option Strict,很可能您的变量不在正确的级别,请在外部声明它,以便每次添加时它都保留该值。另外,您也没有添加到picturebox,可能是一个type-o?只需在方法外部声明变量即可。这将解决您的问题。也可以考虑使用静态。静态被OOP纯粹主义者视为VB6的遗留问题。而且C社区可能不喜欢它,因为我认为他们没有。我认为这是一种非常简洁的方法来维护仅在当前方法中使用的变量的状态。