Можно ли добавить событие наведения курсора мыши к полосам прокрутки Windows Forms ..?

#vb.net

#vb.net

Вопрос:

У меня есть HScrollBar в форме в VB.Net 2012 год. Я бы хотел, чтобы ползунок возвращался к нулю при отпускании кнопки мыши. Но у HScrollBar и VScrollBar нет событий наведения курсора мыши. Я могу несколько имитировать поведение, используя MouseLeave, но это неточно и проблематично.

Я знаю, что класс может быть расширен, но я не знаю, применимо ли это в данном случае. Можно ли расширить классы полосы прокрутки, чтобы добавить событие MouseUp? Если да, то как?

Вот пример моего кода:

 Public Class Form1

    Private Sub HScrollBar1_MouseLeave(sender As Object, e As EventArgs) Handles HScrollBar1.MouseLeave
        HScrollBar1.Value = 0
    End Sub

End Class
  

Комментарии:

1. Вы пробовали это MouseCaptureChanged событие?

Ответ №1:

Комбинация MouseCaptureChanged ValueChanged событий и сработала для меня:

 Private Sub HScrollBar1_MouseCaptureChanged(sender As Object, e As EventArgs) Handles HScrollBar1.MouseCaptureChanged
    If Not HScrollBar1.Capture Then
        HScrollBar1.Value = 0
    End If
End Sub

Private Sub HScrollBar1_ValueChanged(sender As Object, e As EventArgs) Handles HScrollBar1.ValueChanged
    If Not HScrollBar1.Capture Then
        HScrollBar1.Value = 0
    End If
End Sub