对于我的作业,我被要求创建一个由按钮组成的棋盘格。该棋盘的大小由用户通过文本框确定。棋盘中按钮的颜色在红色和蓝色之间交替显示。如果用户单击其中一个按钮,则必须将其颜色更改为红色或蓝色(取决于当前颜色)。此外,单击按钮必须切换该行中每个按钮的颜色。
我的颜色数组包含两个维度(rowInteger
,colInteger
),它们使用用户输入的文本框值。
我点击其中一个动态创建按钮的代码如下:
Protected Sub tempBtn_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim thisButton As Button = CType(sender, Button)
For i As Integer = color.GetLowerBound(0) To color.GetUpperBound(0)
For j As Integer = color.GetLowerBound(1) To color.GetUpperBound(1)
If thisButton Is color(i, j) Then
color(i, j).BackColor = Drawing.Color.Black
End If
Next
Next
End Sub
请注意,为了测试目的,我将颜色严格更改为黑色
我创建按钮的代码如下:
Private Sub createTable()
Dim tempBtn As Button
checkerBoard.BorderStyle = BorderStyle.Groove
checkerBoard.BorderWidth = Unit.Pixel(2)
checkerBoard.Controls.Clear()
For rowInteger = 0 To CInt(rowTxtBox.Text) - 1
Dim newTableRow As New TableRow
checkerBoard.Controls.Add(newTableRow)
For colInteger = 0 To CInt(colTxtBox.Text) - 1
Dim newTableCell As New TableCell
tempBtn = New Button
If colInteger Mod 2 = rowInteger Mod 2 Then
tempBtn.BackColor = Drawing.Color.Red
Else
tempBtn.BackColor = Drawing.Color.Blue
End If
tempBtn.Width = 200
tempBtn.Height = 200
AddHandler tempBtn.Click, AddressOf tempBtn_Click
newTableCell.Controls.Add(tempBtn)
newTableRow.Controls.Add(newTableCell)
ReDim color(rowInteger, colInteger)
color(rowInteger, colInteger) = tempBtn
Next
Next
End Sub
当我运行我的网站并点击一个按钮时,它的颜色变得透明。为什么会这样?我能够改变单个按钮的颜色(通过改变thisButton的颜色),但如果我尝试使用上面的代码改变它的颜色,它就不起作用。
编辑:几小时后再次运行后,颜色根本没有变化。我相信我的解决方案可能存在错误,但我不知道它是什么