Если что-то выходит из панели в верхней части, тогда переведите его в положение (0, 0), если в нижней части (0, Размер высоты панели) - PullRequest
0 голосов
/ 17 марта 2019

Таким образом, в основном я пытался запрограммировать пользовательский ScrollBar для моей WinForm, написанной на VB.NET, и я, похоже, не ограничивал его движение.

Код безлимитных попыток:

Public Class GoldSrcScrollBar
    Dim drag As Boolean
    Dim mousey As Integer

    Private Sub GoldSrcScrollBtn1_MouseDown(sender As Object, e As MouseEventArgs) Handles GoldSrcScrollBtn1.MouseDown
        drag = True
        mousey = Cursor.Position.Y - GoldSrcScrollBtn1.Top
    End Sub

    Private Sub GoldSrcScrollBtn1_MouseUp(sender As Object, e As MouseEventArgs) Handles GoldSrcScrollBtn1.MouseUp
        drag = False
    End Sub

    Private Sub GoldSrcScrollBtn1_MouseMove(sender As Object, e As MouseEventArgs) Handles GoldSrcScrollBtn1.MouseMove
        If drag Then
            GoldSrcScrollBtn1.Top = Cursor.Position.Y - mousey
        End If
    End Sub

Понятия не имею, как сделать так, чтобы лимит был ограничен

Slider = GoldSrcScrollBtn1
ScrollBar Background = GoldSrcScrollBarBg1

Без ограничений это работает так:

Как видите, он выходит из панели (GoldSrcScrollBarBg1). Может ли кто-нибудь помочь мне, пожалуйста? Спасибо:)

...