user3223293
user3223293

Reputation: 83

Mouse hovering event

I want to do an mouse hovering event, when the mouse is over an button I want to change button text color and font size, I have try this code but doesn't work:

 Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Command1.ForeColor.MediumBlue()
    Command1.FontSize = 10
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Command1.ForeColor.White()
    Command1.FontSize = 8
End Sub

Can anyone give me a suggestion i have search on Google and try different ways with mouse event handler but didn't work.

Upvotes: 0

Views: 11464

Answers (2)

miroxlav
miroxlav

Reputation: 12204

First, instead of tracking every mouse move, you can rely on MouseEnter and MouseLeave events of the button.

Second, do not forget to add Handles <Control>.<Event> clause at the declaration of your event-handling procedures.

Result:

Private Sub Command1_MouseEnter(sender As Object, e As EventArgs) _
Handles Command1.MouseEnter
    Command1.FontSize = 10
End Sub

Private Sub Command1_MouseLeave(sender As Object, e As EventArgs) _
Handles Command1.MouseLeave
    Command1.FontSize = 8
End Sub

Also please do not forget that some users are preferring keyboard control. This means that

  1. You might want to equip the button with an accelerator.

    Command1.Text = "&Launch" (now Alt+L activates the button)

    Note: accelerator character for is &, for is _.

  2. You might want to make your entry/leave effect also when the button receives/looses keyboard focus (focus is moved using Tab and Shift+Tab key).

Upvotes: 5

Andrew Mortimer
Andrew Mortimer

Reputation: 2370

You can try making your changes into MouseEnter and MouseLeave

    Private Sub RightButton_MouseEnter(sender As System.Object, e As System.EventArgs) Handles RightButton.MouseEnter
        RightButton.ForeColor = Color.AliceBlue
        RightButton.Font = New Font(RightButton.Font, 12)
    End Sub

    Private Sub RightButton_MouseLeave(sender As System.Object, e As System.EventArgs) Handles RightButton.MouseLeave
        RightButton.ForeColor = Color.White
        RightButton.Font = New Font(RightButton.Font, 10)
    End Sub

Upvotes: 2

Related Questions