Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = 0 End SubPrivate Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = &HFF End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = &HFF00FF Label1.Tag = "1" End SubPrivate Sub Timer1_Timer() Dim pnt As POINTAPI Dim X As Long Dim Y As Long GetCursorPos pnt ScreenToClient Me.hWnd, pnt X = pnt.X * Screen.TwipsPerPixelX Y = pnt.Y * Screen.TwipsPerPixelY
If Label1.Tag = "1" Then If X < Label1.Left Or Y < Label1.Top Or X > (Label1.Left + Label1.Width) Or Y > (Label1.Top + Label1.Height) Then Label1.ForeColor = &HFF0000 Label1.Tag = "0" End If End If
End Sub把TIMER的时间间隔为20
'在窗体上加一个Label1 '-------------------------- Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = vbBlack End SubPrivate Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = vbRed End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = 0 End SubPrivate Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = &HFF End Sub 对的
Label1_MouseMove 内容同linfuyong
哎,大家都说啦,俺说啥,用MouseMove事件
有没有更加节省的办法,大家注意,有多达10多个这样的Label阿!
把label做成数据, 一个事件里就可以了处理了。Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = vbBlack End SubPrivate Sub Label1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) Label1(Index).ForeColor = vbRed '这里index就是控件的编号了100个label都是这句话控制 End Sub
简单的话,把label1控件做成数组:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim i As Integer'这里是处理当鼠标移开label控件时,所有label恢复黑色 For i = Label1.LBound To Label1.UBound Label1(i).ForeColor = 0 Next i
End SubPrivate Sub Label1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) Label1(Index).ForeColor = vbRed 'index就是控件编号了,所有label控件就这一句话变红色End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = 0 End SubPrivate Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = &HFF End Sub
Label1.ForeColor = 0
End SubPrivate Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.ForeColor = &HFF
End Sub
Label1.ForeColor = &HFF00FF
Label1.Tag = "1"
End SubPrivate Sub Timer1_Timer()
Dim pnt As POINTAPI
Dim X As Long
Dim Y As Long
GetCursorPos pnt
ScreenToClient Me.hWnd, pnt
X = pnt.X * Screen.TwipsPerPixelX
Y = pnt.Y * Screen.TwipsPerPixelY
If Label1.Tag = "1" Then
If X < Label1.Left Or Y < Label1.Top Or X > (Label1.Left + Label1.Width) Or Y > (Label1.Top + Label1.Height) Then
Label1.ForeColor = &HFF0000
Label1.Tag = "0"
End If
End If
End Sub把TIMER的时间间隔为20
'--------------------------
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.ForeColor = vbBlack
End SubPrivate Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.ForeColor = vbRed
End Sub
Label1.ForeColor = 0
End SubPrivate Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.ForeColor = &HFF
End Sub
对的
内容同linfuyong
Label1.ForeColor = vbBlack
End SubPrivate Sub Label1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) Label1(Index).ForeColor = vbRed '这里index就是控件的编号了100个label都是这句话控制 End Sub
Dim i As Integer'这里是处理当鼠标移开label控件时,所有label恢复黑色
For i = Label1.LBound To Label1.UBound
Label1(i).ForeColor = 0
Next i
End SubPrivate Sub Label1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) Label1(Index).ForeColor = vbRed 'index就是控件编号了,所有label控件就这一句话变红色End Sub
谢谢!
你按是,然后连续粘够你想要的label, 数组编号从 0-N编,由于数组控件名称全是label1, 所以label1.index为编号标识. 在该控件的任何事件中,都有一个index为标识识别是属于哪一个label产生的事件。
setcapture/releasecapture/windowfrompoint来确定mouseout事件你可以把一个窗口半遮住textbox
鼠标从窗口移到texbox上
此时textbox变色
在从textbox移回窗口上
textbox恢复这说明是真正的mouseout否则都是粗糙的mouseout
我记的曾经有人用drag,事件方法实现了类似的mouseout但是当时没有仔细看
Label1.ForeColor = 0
End SubPrivate Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.ForeColor = &HFF
End Sub