Добавить готовый кастомный VScrollBar к Panel и реализовать его работу

Цена договорная
30 марта 2023, 14:44 • 3 отклика • 35 просмотров
Есть C# Winforms десктопное приложение.

Имеется готовый кастомный VScrollBar, без стрелок вверх, вниз (так задумано). Методы отрисовки и стили (цвет, размер) уже готовы. Сам Thumb (ползунок) уже перемещается по вертикали через MouseWheel, а также через MouseMove при зажатом курсоре мыши на Thumb (ползунке).

Суть задачи: Необходимо сделать так чтобы он мог скроллить содержимое панели, грубо говоря подружить его с панелью.
1. Прокрутка колесом мыши должна скроллить контент панели (причем не только если курсор мыши находится на скроллбаре, но и если курсор над самой панелью)
2. Нажатие курсором на свободную от позлунка область скроллбара должно изменять текущее Value (и положение ползунка) на LargeStep,а также должен скроллиться контент панели. В текущий момент ползунок перемещается в то место куда был сделан клик, без учета LargeStep.
3. Нажатие курсором на свободную от ползунка область скроллбара и удержание левой кнопки мыши, должно изменять текущее Value (и положение ползунка) на LargeStep, а также должен скроллиться контент панели, при дальнейшем удерживании левой кнопки мыши, должен выполняться дальнейший скроллинг до того места где зажат курсор. Так работает дефолтный скроллбар.
4. Если имеется фокус над панелью или скроллбаром, то при нажатии на кнопки клавиатуры:
4.1. Arrow Up - Value уменьшается на величину SmallStep и выполняется скроллинг
4.2. Arrow Down - Value увеличивается на величину SmallStep и выполняется скроллинг
4.3. Page Up - Value уменьшается на величину LargeStep и выполняется скроллинг
4.4. Page Down - Value увеличивается на величину LargeStep и выполняется скроллинг

В приложенном изображении, панель с внутренним контентом обведена линией, на кастомный скроллбар указывает стрелка.
Файлы
Отзывы
R50 73986d350c78e80b43f6b8d6a6b0200d
Заказчик
Отличный исполнитель, вежливый, коммуникабельный.
Задание выполнено качественно, четко по требованиям и в срок.
Рад сотрудничеству.
1 год назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
Всё отлично, ряд сотрудничеству.
1 год назад