|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
|
.NET 4.x Создать свой стиль TabControl02.02.2020, 13:12. Показов 5282. Ответов 34
Метки нет (Все метки)
Здравствуйте.
Нужно создать свой TabControl точнее свой стиль к TabControl. Стиль вот такой: В данном случае это радиокнопки, полоска, панели Но мне бы было удобнее это делать через TabControl. Другое дело TabControl'ов с таким стилем нету. На цвет и шрифт внимание не обращайте. В данном случае нужно чтобы TabControl имел поддержку прозрачного цвета. Кнопки имел стилем RadioButton с нижнем подчеркиванием. Как это сделать? Я не знаю как это делать и еще у меня все плохо с рисованием. На сколько я знаю исходный код оригинальных компонентов посмотреть нельзя.
0
|
|
| 02.02.2020, 13:12 | |
|
Ответы с готовыми решениями:
34
Нестандартный стиль TabControl
Свой TabControl |
|
Модератор
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
|
|
| 02.02.2020, 16:02 | |
|
Alexandr_7, перерисовать стандартный TabControl включив OwnerDraw... Либо писать свой.
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
||
| 02.02.2020, 16:13 [ТС] | ||
|
0
|
||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
|
| 03.02.2020, 17:31 [ТС] | |
|
Может ктио знает где найти пример как это делается. Ну просто мне по меньшей мере 3 таких TabControl нужно.
Помогите пожалуйста.
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
||||||
| 04.02.2020, 06:57 [ТС] | ||||||
|
Короче нужно свой TabControl делать. Из того что нужно это стиль:
Сами вкладки в виде радиокнопок. по центру сверху. Нижнее подчеркивания выбранной вкладки. Короче по скриншоту стиль который я хочу. Я не знаю как его нарисовать в c# этот стиль я делаю путем радиокнопок picturebox для подчеркивания и панелей. Проблема в том что такой способ вынуждает использовать либо куча условий либо делать динамический тоесть полностью на програмном коде. Ни тот ни другой вариант меня не устраивает. Стандартный TabControl не годится по следующим причинам. Во 1 это прозрачность которую он не поддерживает. Во вторых это надо использовать так сказать палки в колеса. Тоесть нужно скрыть эти кнопки и заместо этого использовать радиокнопки и picturebox. Конечно я не спорю можно думаю сделать костыли и для стандартного TabControl. Но хотелось бы иметь свой компонент. Возможно сделать компонент с этиими костылями хотя куда эфективнее создать свой компонент или использовать наследника TabControl но с полностью переделанным стилем. Другое дело что не знаю как эти стили создавать под компоненты и еще у меня возникнут прроблемы с отрисовкой этого Так как банально я не умею рисовать. Помогите мне. Посоветуйте какоенибудь решения как можно создать TabControl со своим стилем. Нужен именно компонент так как я такой стиль использую практически везде. Мне такой стиль нравится. И попрошу заметить цвет фона и шрифта на стиль не влияет как и цвет полоски.ВА даннгой программе цвет такой для простоты. Но цвет необязательно должен быть таким. Под стилем подразумивается именно что радиокнопка с подчеркиванием если она выбрана. Я примерно представляю какие параметры должны быть для настройки стиля но нарисовать такой стиль не способен. Что до настройки то представления такие:
Сразу оговорка под словом прозрачности имеется в виду прозрачный цвет.
0
|
||||||
|
Модератор
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
|
|
| 04.02.2020, 08:26 | |
|
Alexandr_7, а для чего используется прозрачный цвет? Если контрол залит, скажем, черным цветом, как на картинке у вас?
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
||
| 04.02.2020, 08:41 [ТС] | ||
|
0
|
||
|
Модератор
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
|
|
| 04.02.2020, 09:22 | |
|
Alexandr_7, такое будет сложно организовать с учетом того, что есть еще и сам контейнет владок, который тоже должен быть вроде как прозрачным.
0
|
|
|
Строитель
|
|
| 04.02.2020, 20:44 | |
|
Alexandr_7
В проекте есть четыре элемента, это: TabControl - сам контрол TabStrip - контрол, чтобы показать вкладки TabStripItem - сама вкладка TabPage - контрол для показа страницы Все они могут принимать прозрачный цвет фона. Для того что бы всё работало нам надо добавить вкладки в свойствах Items. Далее в них указать в свойстве UserControl, тот контрол, который будет отображаться как страница (в проекте я использовал панельки).
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
||
| 05.02.2020, 08:38 [ТС] | ||
|
0
|
||
|
Модератор
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
|
|
| 05.02.2020, 11:03 | |
|
Alexandr_7, TabStrip ведь содержит вкладки, играйтесь с ним
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
||
| 05.02.2020, 15:24 [ТС] | ||
|
Добавлено через 22 минуты Кстати. Как можно переопределить одно свойство у компонента RadioButton чтобы оно зависело от переменной. Например нужно чтобы шрифт у радиокнопок зависел от переменной defaultrbtnfont! Добавлено через 3 минуты Мне именно что нужно чтобы по дефолту цвет зависел от цвета defaultrbtnfont. Тоесть даже если програмно цвет меняется то он должен менятся и у радиокнопок но только в том счлучае если мы сами у радиокнопки цвет не меняли
0
|
||
|
Модератор
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
|
|
| 05.02.2020, 15:40 | |
|
наверное подписаться на событие, щас не у студии, не вижу какие точно, на так на вскидку, FontChanged, или на худой конец в событии Paint
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
|
| 05.02.2020, 15:40 [ТС] | |
|
Вообще таким образом нужно будет сделать не только цвет но и еще несколько полей. Но мнебы пример с одним полем.
0
|
|
|
Модератор
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
|
|
| 05.02.2020, 15:41 | |
|
Либо в коде сразу после смены знаяения переменной - применять это знаяение туда, куда надо.
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
||
| 05.02.2020, 15:42 [ТС] | ||
|
Вообще событие тоже не помешает. Но нужно создать общее событие для всех радиокнопок.
0
|
||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
||||||
| 05.02.2020, 16:00 [ТС] | ||||||
0
|
||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
|
|
| 05.02.2020, 23:03 [ТС] | |
|
Вопрос. А как в своей радиокнопки (наследника стандартной) добавить автонумерное поле. Тоесть поле которое будет нумероваться с нуля? И автоматически при стирании компонента сортироваться. Ну чтобы из самого компонента можно было узнать индекс короче говоря? Просто мне не нужно рисоватьполоску на радиокнопки. Нужно это делать в отдельном компоненте. Впрочем может по координатита радиокнопки можно это делать.
Ну и еще. Я так и не понял а как собстно делать для свойств радиокнопки чтобы они по стандарту брали из объявленых свойств но только по стандартну. Понятное дело что класс кнопки объявить в классе TabControl'а чтобы кнопка получила доступ к переменным контрола но нужно именно чтобы не постоянно свойства кнопки брали значения из переменных свойств контрола а только по умолчанию. Тоесть если к примеру пользователь выберет для определенной кнопки какоенибудь определенное свойства то тогда не нужно уже брать из свойств контрола. Добавлено через 9 минут Сталкнулся с тем что так просто рисовать на панеле и события Paint у наследника радиокнопки нельзя. Точнее нельзя вообще взаимодействовать. Требует чтобы панель была статическим полем. И как быть?
0
|
|
| 05.02.2020, 23:03 | |
|
Помогаю со студенческими работами здесь
20
Свой компонент (tabControl || listBox || listView) Свой стиль Trackbar Как сделать свой стиль выделения в TextBox Можно и изменить стиль отображения класса ListView или придется писать свой контрол Динамически создать TextBox на TabControl.TabPage2 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|