我的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
如果您需要更多信息,请询问!
答案 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
的价值变化。