7,763
社区成员
发帖
与我相关
我的任务
分享
Private Sub Label1_Click(Index As Integer)
Dim i As Long
For i = 0 To 9
If Label1(i).BackColor = &HFFFF00 Then
Label1(i).BackColor = &H8000000F
End If
Next
Label1(Index).BackColor = &HFFFF00
End Sub
Option Explicit
Dim SelLabelIndex As Integer
Private Sub Label1_Click(Index As Integer)
Label1(SelLabelIndex).ForeColor = vbBlack
Label1(Index).ForeColor = vbRed
SelLabelIndex = Index
End Sub
Dim SelLabelIndex As Integer
Private Sub Label1_Click(Index As Integer)
Label1(SelLabelIndex).ForeColor = vbBlack
Label1(Index).ForeColor = vbRed
End Sub
Option Explicit
Private Sub Form_Load()
Dim vI As Long
Dim vJ As Long
Dim vX As Long
Dim vY As Long
Me.WindowState = 2
Me.Show
Label1(0).Move 0, 0, 180, 180
vX = (Me.Width - 120) \ 210 + 1
vY = (Me.Height - 630) \ 210 + 1
vJ = vX * vY - 1
For vI = 1 To vJ
Load Label1(vI)
Label1(vI).Move (vI Mod vX) * 210, (vI \ vX) * 210, 180, 180
Label1(vI).Visible = True
Next
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lbl As Label
For Each lbl In Label1
lbl.BackColor = vbRed
Next
End Sub
Private Sub Label1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lbl As Label
For Each lbl In Label1
lbl.BackColor = IIf(lbl.Index = Index, vbBlue, vbRed)
Next
End Sub
用户体验并不是很好,特别是MouseMove这种频繁性事件,以上纯属个人建议……Private i As Integer
Private c As Long
Private Sub Form_Load()
i = -1
c = Label1(0).BackColor
End Sub
Private Sub Label1_Click(Index As Integer)
If Index <> i Then
Label1(Index).BackColor = vbRed
If i <> -1 Then Label1(i).BackColor = c
i = Index
End If
End Sub
Option Explicit
Private Sub Label1_Click(Index As Integer)
Dim lbl As Label
For Each lbl In Label1
lbl.BackColor = IIf(lbl.Index = Index, vbInfoBackground, vbButtonFace)
Next
End Sub
Option Explicit
Private Sub Label1_Click()
Change_Label_Color ("Label1")
End Sub
Private Sub Label2_Click()
Change_Label_Color ("Label2")
End Sub
Private Sub Label3_Click()
Change_Label_Color ("Label3")
End Sub
Private Sub Change_Label_Color(ByVal strLabelName As String)
Dim x As Control
For Each x In Me.Controls
If TypeOf x Is Label Then
If x.Name = strLabelName Then
x.ForeColor = vbRed
Else
x.ForeColor = vbBlack
End If
End If
Next x
End Sub
Option Explicit
Private mintCurIndex As Integer
Private Sub Form_Load()
mintCurIndex = -1
End Sub
Private Sub Label1_Click(Index As Integer)
If mintCurIndex >= 0 Then
Label1(mintCurIndex).ForeColor = vbBlack
End If
If mintCurIndex = Index Then '再次点同一个标签时恢复
mintCurIndex = -1
Exit Sub
End If
Label1(Index).ForeColor = vbRed
mintCurIndex = Index
End Sub