Om jag har en knapp och vill att den skall ändra något medans man hovrar över den... Finns det inte några mouse-händelser? Vill minnas att det fanns någonting sådant? (Kan inte kolla/orkar inte kolla msdn) Enklaste sättet är att i knappens mousemove-händelse göra ändringen och i formulärets mousemove-händelse återställa den. Finns säkert smidigare sätt, speciellt om du har många knappar. http://www.vbaccelerator.com/home/vb/code/Libraries/Subclassing/Generating_MouseLeave_Events_for_a_Window/article.asp Jag skruvade ihop detta enkla principexempel. Här ett exempel där jag har 3 CommandButton (cmdMeny) i en controlarray. Gjorde en till lösning. Fungerar som så att de kontroller man vill ändra stil på läggs i en Collection. Vid MouseMove-händelsen anropas rutinen Boldify med ovan nämnda Collection och namnet på kontrollen som argument. I formulärets MouseMove-hanterare anropas Boldify igen, denna gång med kontrollnamnet tomt. Tackar för förslagen skall prova dem.... Kiitoksia Sven :) Man gör sitt bästa. Ganska roligt att koda VB6 lite emellanåt, blir mest Java nu för tiden.Hovra över en knapp??
Som man kan göra på en hemsida......Sv: Hovra över en knapp??
Sv: Hovra över en knapp??
Sv:Hovra över en knapp??
<b>Mycket skrik för lite ull som käringen sa när hon klippte grisen</b>Sv: Hovra över en knapp??
I design läge sätter du Command1.Style = 1 Graphic
Command1.Tag = Hover
<code>
Option Explicit
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Command1.BackColor = vbYellow Then Command1.BackColor = &H8000000F
End Sub
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Command1.Tag = "Hover" Then Command1.BackColor = vbYellow
End Sub
</code>Sv:Hovra över en knapp??
Sätter deras Style propertie till 1 Graphic i IDE Designläge.
Sätter Tag propertie till "Hover0" , "Hover1" , "Hover2" osv osv så många du har.
<code>
Option Explicit
Private Sub Form_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
Dim i As Long
For i = 0 To 2 'Jag vet hårdkodat att jag har 3 cmdMeny
If cmdMeny(i).BackColor = vbYellow Then cmdMeny(i).BackColor = &H8000000F
Next 'i
End Sub
Private Sub cmdMeny_MouseMove(Index As Integer, Button As Integer, _
Shift As Integer, X As Single, Y As Single)
Select Case cmdMeny(Index).Tag
Case "Hover0"
cmdMeny(Index).BackColor = vbYellow
Case "Hover1"
cmdMeny(Index).BackColor = vbYellow
Case "Hover2"
cmdMeny(Index).BackColor = vbYellow
End Select
End Sub
</code>Sv: Hovra över en knapp??
På så sätt kan kontroller av olika typ användas. Om all kontroller på formuläret skall stylas om kan du skicka med Form1.Controls.
Koden är i två delar, första skall i en modul.
Option Explicit
Public Sub Boldify(ctrls As Collection, name As String)
Dim ctrl As Control
For Each ctrl In ctrls
If ctrl.name = name Then
ctrl.FontBold = True
Else
ctrl.FontBold = False
End If
Next
End Sub
Public Sub Italicize(ctrls As Collection, name As String)
Dim ctrl As Control
For Each ctrl In ctrls
If ctrl.name = name Then
ctrl.FontItalic = True
Else
ctrl.FontItalic = False
End If
Next
End Sub
Ett exempel, Form 1 behöver en CommandButton, en Label och en Text-kontroll:
Option Explicit
Dim styledControls As New Collection
Private Sub Form_Load()
styledControls.Add Command1
styledControls.Add Label1
styledControls.Add Text1
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Boldify styledControls, ""
Italicize styledControls, ""
End Sub
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Boldify styledControls, "Command1"
Italicize styledControls, "Command1"
End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Boldify styledControls, "Label1"
Italicize styledControls, "Label1"
End Sub
Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Boldify styledControls, "Text1"
Italicize styledControls, "Text1"
End Sub
Kan säkert göras effektivare genom att "avboldningen" görs till en egen funktion där ingen namnjämförelse utförs, utan alla kontrollers FontBold-egenskap sätts till False.
Sv:Hovra över en knapp??
Funderade på en sak här på jobbet...
MouseOver... När inträffas den?? När Musen rör sig över knappen?? Eller när musen rör sig över hela formen? Elle när musknappen är nere över knappen??Sv:Hovra över en knapp??