Code:
Private m_ActiveButton As CommandButton
Private Sub Command1_MouseMove(Button As Integer, _
Shift As Integer, _
X As Single, _
Y As Single)
Set m_ActiveButton = Command1
Command1.BackColor = vbRed
End Sub
Private Sub Form_MouseMove(Button As Integer, _
Shift As Integer, _
X As Single, _
Y As Single)
If Not m_ActiveButton Is Nothing Then
m_ActiveButton.BackColor = vbYellow
End If
End Sub
Nisam siguran da li sam te razumeo sto se tice prvog pitanja, ali evo ti ideja, pa razradi prema tvojim potrebama.
Sto se tice drugog pitanja, po meni je to normalna situacija. Ja u takvim slucajevima obicno koristim nizove command buttona, jer je tako lakse raditi. Imam fje EnableControl i ShowControl, koje primaju dva parametra. Prvi je tipa Object (niz buttona) a drugi string koji sadrzi nule i jedinice. Onda kad treba npr. enableovati/disableovati grupu od 10 buttona, ne kucam 10 puta Button.Enabled=True/False, nego pozovem funkciju sa "1001011000"
Code:
Private Sub m_EnableControl(Ctl As Object, str As String)
Dim i As Integer
On Error GoTo Proc_Error
If Ctl Is Nothing Then Exit Sub
For i = Ctl.LBound To Ctl.UBound
Ctl(i).Enabled = Mid(str, i + 1, 1) = "1"
Next i
End Sub