Visual Basic单击事件一起添加分数

时间:2014-04-03 10:18:22

标签: arrays vb.net numbers

不是100%肯定如何做到这一点,主要是因为我不熟悉这里的编程!

我创建了一个表格,其中填充了数组中的随机数字,当用户点击其中一个按钮时,需要将数字添加到他们的分数上。例如,当用户点击10和15时,他们的分数将是25.一旦用户点击了按钮,该按钮需要将颜色改为AliceBlue(只是随机颜色)。有什么建议/例子吗?

下面这段代码构成了游戏中使用的表格,

让我知道你的想法!

Dim RandomNumbers = Enumerable.Range(0, 100).ToList()
        Dim RandomNumber As New Random()
        For Me.TableColunm = 0 To 4 Step 1
            For Me.TableRow = 0 To 4 Step 1
                Dim TemporaryNumber = RandomNumbers(RandomNumber.Next(0, RandomNumbers.Count))
                RandomNumbers.Remove(CInt(TemporaryNumber))
                TableButtons = New Button()
                With TableButtons
                    .Name = "TextBox" & TableColunm.ToString & TableRow.ToString
                    .Text = TemporaryNumber.ToString
                    .Width = CInt(Me.Width / 4)
                    .Left = CInt(TableColunm * (Me.Width / 4))
                    .Top = TableRow * .Height
                    .Tag = TemporaryNumber
                    AddHandler TableButtons.Click, AddressOf TableClickEvent
                End With
                GameScreen.Controls.Add(TableButtons)
            Next TableRow
        Next TableColunm
    Catch ex As Exception
        MsgBox(ex.StackTrace & vbCrLf & "index1= " & TableColunm & vbCrLf & "index2= " & TableRow)
End Try

Public Sub TableClickEvent(sender As Object, e As EventArgs)
    CType(sender, Button).BackColor = Color.BlueViolet
    OverAllScoreInteger += CInt(CType(sender, Button).Tag)
End Sub

我还必须将分数解析为一个名为' UserScoreBox'的文本框。表单在GameScreen'

1 个答案:

答案 0 :(得分:1)

使用AddHandler语句向控件添加一个事件处理程序,并提供处理该事件的子句。

Private Sub Clickhandler(sender As Object, e As EventArgs)
  CType(sender, Button).BackColor = Color.AliceBlue
End Sub

发件人基本上是发起活动的来源。在这种情况下,您单击了按钮。

要使按钮引发事件,请将其添加到您创建按钮的代码中:

Addhandler TableButtons.Click, AddressOf Clickhandler

要添加分数,您可以将按钮所代表的表行的索引放在按钮的.Tag属性中。这样,您可以在事件处理程序中检索发件人的行并添加值。

编辑:添加号码: 在按钮创建时,将数字保存在标签中(您也可以只使用.Text,但实际上并不重要,只需这样一次转换):

With TableButtons
 .Tag = Temporarynumber

然后在处理程序中再次解压缩对象:

Overallscore += CInt(CType(sender, button).Tag)