我在这里有一种情况。我有一个“索引超出范围”错误,我不知道是什么原因造成的。我想这与标签有关。
通常,标签代表一个数字。如果我将该数字除以列数,它会返回我单击的按钮所在的行。如果我采用该标签的模式,它应该返回我单击按钮的列。但是出了点问题,我不知道是什么。我希望有人可以帮助我解决这个问题。提前致谢。
Public Class Form1
Dim AANTAL_KOLOMMEN As Integer = 8
Dim AANTAL_RIJEN As Integer = 8
Dim Button1 As Button
Dim tel As Boolean
Dim value1 As Integer
Dim value2 As Integer
Dim myButtons(AANTAL_RIJEN, AANTAL_KOLOMMEN) As Button
Public Function zetNieuw(rij As Integer, kolom As Integer) As Button
Dim nieuweKnop As New Button()
nieuweKnop.Width = 40
Me.Controls.Add(nieuweKnop)
nieuweKnop.Name = "Btn_" & rij & "_" & kolom
nieuweKnop.Left = kolom * nieuweKnop.Width
nieuweKnop.Top = rij * nieuweKnop.Width
nieuweKnop.Height = nieuweKnop.Width
nieuweKnop.Text = ""
AddHandler nieuweKnop.MouseDown, AddressOf Klik
If rij = 3 And kolom = 3 Then
nieuweKnop.BackColor = Color.Black
End If
If rij = 4 And kolom = 4 Then
nieuweKnop.BackColor = Color.Black
End If
If rij = 3 And kolom = 4 Then
nieuweKnop.BackColor = Color.White
End If
If rij = 4 And kolom = 3 Then
nieuweKnop.BackColor =
Color.White
End If
nieuweKnop.Tag = (kolom + (rij * AANTAL_KOLOMMEN))
Return nieuweKnop
End Function
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For Me.value2 = 0 To AANTAL_RIJEN - 1 Step 1
For Me.value1 = 0 To AANTAL_KOLOMMEN - 1 Step 1
myButtons(value2, value1) = Me.zetNieuw(value2, value1)
Next
Next
End Sub
Private Sub Klik(sender As Object, e As MouseEventArgs)
Dim knop As Button = sender
Dim value As String = knop.Tag
If myButtons(Tag / AANTAL_KOLOMMEN, (Tag Mod AANTAL_KOLOMMEN) - 2).BackColor = Color.Black Or myButtons((Tag / AANTAL_KOLOMMEN - 2), Tag Mod AANTAL_KOLOMMEN).BackColor = Color.Black Or myButtons((Tag / AANTAL_KOLOMMEN) - 2, (Tag Mod AANTAL_KOLOMMEN) - 2).BackColor = Color.Black Then
knop.BackColor = Color.Black
ElseIf myButtons(Tag / AANTAL_KOLOMMEN, (Tag Mod AANTAL_KOLOMMEN) - 2).BackColor = Color.White Or myButtons((Tag / AANTAL_KOLOMMEN - 2), Tag Mod AANTAL_KOLOMMEN).BackColor = Color.White Or myButtons((Tag / AANTAL_KOLOMMEN) - 2, (Tag Mod AANTAL_KOLOMMEN) - 2).BackColor = Color.White Then
knop.BackColor = Color.Black
End If
End Sub
End Class