Обсуждение статьи "DoEasy. Элементы управления (Часть 18): Готовим функционал для прокрутки вкладок в TabControl"

 

Опубликована статья DoEasy. Элементы управления (Часть 18): Готовим функционал для прокрутки вкладок в TabControl:

В статье разместим кнопки управления прокруткой заголовков в WinForms-объекте TabControl на своих местах в случае, если строка заголовков не умещается по размеру элемента управления, и сделаем смещение строки заголовков при щелчке по обрезанному заголовку вкладки.

Панели создаём в цикле (сейчас пока только одна панель), так как выяснилось, что если создать несколько панелей с элементами управления TabControl, то эти элементы работают некорректно. Для будущего исправления этой недоработки мы и сделаем создание нужного количества панелей.

Скомпилируем советник и запустим его на графике, предварительно выставив требуемые настройки:


Как видим, заявленный функционал работает правильно.

Автор: Artyom Trishkin

 
Добрый день!)

В целом полезная функция, но выглядит визуально не изящно, как сделать иначе, честно не знаю, но хотя бы в размер с кнопками)

Возможно было бы изящнее полосу прокрутки классическую сделать, но это как вариант, а вообще странно так много вкладок делать горизонтальными даже в плане управления это кааапец как неудобно, при большом количестве вкладок уже логичнее меню сделать слева и дать возможность скрывать..

п.с. использую стандартную библиотеку, работает быстрее всех и стабильнее, но не все элементы есть, приходится дополнять.
 
Daniil Kurmyshev #:
Добрый день!)

В целом полезная функция, но выглядит визуально не изящно, как сделать иначе, честно не знаю, но хотя бы в размер с кнопками)

Возможно было бы изящнее полосу прокрутки классическую сделать, но это как вариант, а вообще странно так много вкладок делать горизонтальными даже в плане управления это кааапец как неудобно, при большом количестве вкладок уже логичнее меню сделать слева и дать возможность скрывать..

Здесь разрабатывается аналог элемента управления TabControl из MS Visual Studio. Естественно, у объекта есть возможность размещать заголовки вкладок в несколько рядов и с разных сторон контейнера. Кнопки управления прокруткой сделаны по аналогии с вышеупомянутым объектом. Размер - высота, заголовков настраивается. Здесь в примере специально сделана больше высоты кнопок - чтобы видно было как идёт обрезание - равно так же, как и в TabControl из MS Visual Studio:

Естественно, кнопки управления прокруткой немного отличаются по внешнему виду. Но это поправимо - нужно заливать их не однородным цветом, а градиентом (это здесь возможно, просто ещё пока рано заниматься дизайнерскими изысками), равно, как и размер стрелок будет подбираться позже.

Классической полосы прокрутки в данном элементе управления для заголовков вкладок не предусмотрено - и её не будет - не для этого она здесь. А вот те элементы, которые возможно разместить на полях вкладок - они будут иметь стандартную полосу прокрутки (настраиваемую по желанию)