VB里,国际象棋的棋盘,点一下黑白变色 ,显示点了的格子的号码怎么实现

来源:百度知道 编辑:UC知道 时间:2024/05/12 20:14:56
窗体上就一个Label1(0)。

Private Sub Form_Load()
Label1(0).Visible = False
Dim mytop, myleft, i, j, k As Integer
mytop = 0
For i = 1 To 8
myleft = 0
For j = 1 To 8
k = (i - 1) * 8 + j
Load Label1(k)
Label1(k).BackColor = IIf((i + j) Mod 2 = 0, vbWhite, vbBlack)
Label1(k).Visible = True
Label1(k).Caption = ""
Label1(k).Top = mytop
Label1(k).Left = myleft
myleft = myleft + Label1(0).Width
Next j
mytop = mytop + Label1(0).Height
Next i
End Sub

Private Sub Label1_Click(Index As Integer)
Dim i, j, k As Integer
Label1(Index).Caption = Index
For i = 1 To 8
For j = 1 To 8
k = (i - 1) * 8 + j
If Label1(0).BackColor = vbwrite Then
Label1(k).BackColor = vbBlack
Label1(k).ForeColor = vbwrite
Else
Label1(k).BackColor = vbWhite
Label1(k).ForeColor = vbBlack
End If
Next j

Dim flg As Boolean

Private Sub Form_Load()
flg = True
Label1(0).Visible = False
Dim mytop, myleft, i, j, k As Integer
mytop = 0
For i = 1 To 8
myleft = 0
For j = 1 To 8
k = (i - 1) * 8 + j
Load Label1(k)
Label1(k).BackColor = IIf((i + j) Mod 2 = 0, vbWhite, vbBlack)
Label1(k).Visible = True
Label1(k).Caption = ""
Label1(k).Top = mytop
Label1(k).Left = myleft
myleft = myleft + Label1(0).Width
Next j
mytop = mytop + Label1(0).Height
Next i
End Sub

Private Sub Label1_Click(Index As Integer)
Dim i, j, k As Integer
Label1(Index).Caption = Index
For i = 1 To 8
For j = 1 To 8
k = (i - 1) * 8 + j
If flg = False Then
Label1(k).BackColor = IIf((i + j) Mod 2 = 0, vbWhite, vbBlack)
Label1(k).ForeColor = IIf((i + j) Mod 2 = 0, vbBlack, vbWhite)
Else
Label1(k).BackColor = IIf((i + j) Mod 2 = 0, vbBlack, vbWhite)
Label