Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 16.04.2015
Сообщений: 47
1

Текстура для вкладки tabpage

30.08.2015, 21:41. Показов 1205. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Подскажите, можно ли вкладке tabpage (по которой кликаем) назначить текстуру? В настройках можно сделать только для заднего фона (а не для самих вкладок).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2015, 21:41
Ответы с готовыми решениями:

Отобразить все вкладки в TabPage
на форме tabcontrol с 2-мя tabpage. в процессе программирования одна из них ушла на задний план,как...

Пройтись циклом по TabPage после перетаскивания вкладки
Привет всем. Как я понимаю, после перетаскивания вкладки - ее индекс не меняется до следующего...

Как при создании вкладки в tabcontrol, webbrowser автоматически помещался на tabpage
Здраствуйте у меня есть несколько вопросов 1)Как при создании вкладки в tabcontrol,webbrowser...

При нажатии кнопки вызвать метод, который блокирует выбор вкладки tabPage
Всем Привет! Я хочу, чтобы при нажатии кнопки открывалась определенная вкладка, а остальные...

1
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
30.08.2015, 23:23 2
Лучший ответ Сообщение было отмечено strelok200 как решение

Решение

Можно это сделать, но будет костыльно. Суть метода в чём - отрубить прорисовку стандартного изображения вкладки(будет пустая панелька на её месте), и уже поверх неё рисовать что-то своё. Такой метод применяется для втыкания во вкладку кнопки закрытия, и он самый простой.
Что, для этого нужно сделать -
1) У tabControl проставляем значения:
DrawMode = OwnerDrawFixed;
SizeMode = Fixed;
ItemSize = 150,18;///Тут размеры нашей вкладки
2) В коде добавляем функцию:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        tabControl1.DrawItem += tabControl1_DrawItem;///Добавляем обработчик перерисовки вкладки
 
                //Рисует заголовок вкладки
        void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
        {       
            string s = tabControl1.TabPages[e.Index].Text;
            if (s.Length > 20)
                s = s.Substring(0, 17) + "...";
 
            e.Graphics.FillRectangle(new SolidBrush(Color.Red), new Rectangle(e.Bounds.Left, e.Bounds.Top, e.Bounds.Width, 22));///Тут рисуем фон. В данном случае - красный, прямоугольник.
            e.Graphics.DrawString(s, e.Font, Brushes.Black, new RectangleF(e.Bounds.Left + 12, e.Bounds.Top + 4, e.Bounds.Width, e.Bounds.Height));///Тут отрисовываем текст, который должен быть написан во вкладке 
            e.DrawFocusRectangle();
        }
3) При запуске приложения любуемся на красный фон у вкладки. Точно таким же образом делается текстурный фон.

Есть второй вариант, на порядок более сложный, но в некоторых случаях, например, когда, количество вкладок очень большое, и нужно сделать кнопки их листания (как в firefox), он незаменим. Подробно он описан Тут. Если коротко - вы создаёте свой контрол, на основе tabPage, и прорисовываете ему что хотите.
1
30.08.2015, 23:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.08.2015, 23:23
Помогаю со студенческими работами здесь

Как сделать TabPage (вкладки), как в Mozilla Firefox
Пишу веб браузер на языке C#,и возникли такие вопросы: 1.Как сделать вкладки у браузера...

Доступ к содержимому TabPage в TabPage
есть tabpage и внутри него еще несколько tabpage, как получить доступ к их содержимому? помогите,...

Вывод вопросов теста во вкладки TabPage
У меня в PageControl имеются несколько страниц. На каждой странице разные тесты. Так вот, как в...

Как в глобальном массиве создать динамические вкладки TabPage?
В общем ситуация такая что мне нужно в элементе TabControl в с++ сделать так что количество вкладок...

Не создается textBox1 и не меняется цвет вкладки tabPage которая создана программно
Здравствуйте!!! Мне нужно установить на Форму порядка 50 вкладок. Не буду же я создавать эти 50...

Создаю вкладку TabPage. При динамическом создании новой вкладки, стирается все кнопки на других вкладках
Здравствуйте. Подскажите, пожалуйста. Вот мой код, что много слов не писать. private:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru