整数更改时如何更改文本?

时间:2016-10-16 04:20:03

标签: vb.net

我的Visual Basic应用程序需要一些帮助。我正在编写一个宾果游戏,我想知道当“得分”整数改变时如何触发事件来更改标签。基本上,我想在分数改变时更改标签的文本。到目前为止,这是我的代码:

Dim Integer score = 0
....
Private Sub OnScoreChange(sender As Integer, e As EventArgs) Handles score.{changed}
    ScoreLabel.Text = "Score: " + CStr(score) + " out of 15"
End Sub

如果您需要更多信息,请询问!

1 个答案:

答案 0 :(得分:0)

您需要明确地为变量更改事件 - 语言中没有任何内容可以隐式地为您执行此操作。

现在,您尚未明确score变量和事件处理程序是否在同一个类中。

假设它们在同一个类中,则不需要事件处理程序。你会写这种代码:

Private _score As Integer = 0

Public Property Score() As Integer
    Get
        Return _score
    End Get
    Set(ByVal Value As Integer)
        _score = Value
        Console.WriteLine("Score: " + CStr(_score) + " out of 15")
    End Set
End Property

通常,如果您要处理事件,则您有两个类,并且您希望一个类向任何事件处理程序报告值更改。在这种情况下,您将编写此代码:

Public Class Bingo

    Public Event ScoreChange As EventHandler

    Private _score As Integer = 0

    Public Property Score() As Integer
        Get
            Return _score
        End Get
        Set(ByVal Value As Integer)
            _score = Value
            RaiseEvent ScoreChange(Me, New EventArgs())
        End Set
    End Property

End Class

......这是一个单独的课程:

Private WithEvents _bingo As Bingo = New Bingo()

Private Sub ScoreChange(sender As Object, e As EventArgs) Handles _bingo.ScoreChange
    Console.WriteLine("Score: " + CStr(_bingo.Score) + " out of 15")
End Sub

除此之外,处理事件的方法的命名约定不是以 On 开头。以On开头的方法是通常引发事件但不处理事件的方法。我根据这个约定调用了你的处理方法ScoreChange

这就是如何回应Score的价值变化。