Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/34: Рейтинг темы: голосов - 34, средняя оценка - 4.68
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950

Как убрать границы у tabControl?

03.06.2019, 07:20. Показов 6851. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно, чтобы у моего табКотрола вообще не было видно границ. Нужно, например, чтобы если страница табконтрола пуста, отображались только кнопки.
Вот мои попытки:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
private void TabControl1_DrawItem(object sender, DrawItemEventArgs e)
        {
            Graphics g = e.Graphics;
            Brush _TextBrush;
 
            // Get the item from the collection.
            TabPage _TabPage = tabControl1.TabPages[e.Index];
 
            // Get the real bounds for the tab rectangle.
            Rectangle _TabBounds = tabControl1.GetTabRect(e.Index);
 
            if (e.State == DrawItemState.Selected)
            {
                // Draw a different background color, and don't paint a focus rectangle.
                _TextBrush = new SolidBrush(Color.White);
                g.FillRectangle(Brushes.Red, e.Bounds);
            }
            else
            {
                _TextBrush = new SolidBrush(e.ForeColor);
                // e.DrawBackground();
            }
 
            // Use our own font. Because we CAN.
            Font _TabFont = new Font("Arial", (float)24, FontStyle.Bold, GraphicsUnit.Pixel);
 
            // Draw string. Center the text.
            StringFormat _StringFlags = new StringFormat();
            _StringFlags.Alignment = StringAlignment.Center;
            _StringFlags.LineAlignment = StringAlignment.Center;
            g.DrawString(tabControl1.TabPages[e.Index].Text, _TabFont, _TextBrush,
                         _TabBounds, new StringFormat(_StringFlags));
        }
Увы, всё тщетно
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.06.2019, 07:20
Ответы с готовыми решениями:

Как убрать визуальные границы кнопки
Подскажите пожалуйста, как убрать визуальные границы кнопки (которые черного цвета)?

Как убрать серый фон в TabControl?
НЕмогу найти толковый ответ на это вопрос в гугле, пробовал EnableThemeDialogTexture(hwndDlg, ETDT_ENABLETAB); - вообще ничего не...

Как убрать границы таблицы программно?
В документе есть ричтекстовое поле. Нужно программно создать в нем таблицу, но не отображать ее границы (или задать цвет границ, равный...

9
Эксперт .NET
 Аватар для Rius
13092 / 7651 / 1672
Регистрация: 25.05.2015
Сообщений: 23,293
Записей в блоге: 14
03.06.2019, 07:57
DenKG, а заголовки страниц вы не скрываете?
0
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950
03.06.2019, 08:14  [ТС]
Rius, нет, этого делать не нужно. Нужно просто убрать рамку.

Добавлено через 15 минут
Rius, ну или хотя бы просто изменить цвет этой границы, чтобы ее не было видно
0
Эксперт .NET
 Аватар для Rius
13092 / 7651 / 1672
Регистрация: 25.05.2015
Сообщений: 23,293
Записей в блоге: 14
03.06.2019, 08:25
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System.Runtime.InteropServices;
using System.Windows.Forms;
 
namespace WindowsFormsApp1
{
    public class MyTabControl : TabControl
    {
        private const int TCM_ADJUSTRECT = 0x1328;
 
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == TCM_ADJUSTRECT)
            {
                RECT rect = (RECT)(m.GetLParam(typeof(RECT)));
                rect.Left = this.Left - this.Margin.Left;
                rect.Right = this.Right + this.Margin.Right;
                rect.Top = this.Top - this.Margin.Top;
                rect.Bottom = this.Bottom + this.Margin.Bottom;
                Marshal.StructureToPtr(rect, m.LParam, true);
            }
 
            base.WndProc(ref m);
        }
 
        private struct RECT
        {
            public int Left, Top, Right, Bottom;
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System.Windows.Forms;
 
namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        private MyTabControl tab;
 
        public Form1()
        {
            InitializeComponent();
 
            this.tab = new MyTabControl();
            this.tab.Parent = this;
            this.tab.Dock = DockStyle.Fill;
            this.tab.TabPages.Add("page1");
            this.tab.TabPages.Add("page2");
 
            TabPage page1 = this.tab.TabPages[0];
            TabPage page2 = this.tab.TabPages[1];
 
            page1.Controls.Add(new Button() { Left = 10, Top = 10, Width = 120, Height = 27, Text = "Button" });
            page2.Controls.Add(new CheckBox() { Left = 10, Top = 10, Width = 120, Height = 27, Text = "CheckBox" });
        }
    }
}
Миниатюры
Как убрать границы у tabControl?  
0
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950
03.06.2019, 09:51  [ТС]
Rius, не работает так. Просто какой-то серый квадрат сверху слева появляется и всё
0
Эксперт .NET
 Аватар для Rius
13092 / 7651 / 1672
Регистрация: 25.05.2015
Сообщений: 23,293
Записей в блоге: 14
03.06.2019, 10:01
Проверьте:
Вложения
Тип файла: zip WindowsFormsApp1.zip (17.6 Кб, 35 просмотров)
0
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950
03.06.2019, 10:06  [ТС]
Rius, а как просто изменить цвет этой границы?
0
Эксперт .NET
 Аватар для Rius
13092 / 7651 / 1672
Регистрация: 25.05.2015
Сообщений: 23,293
Записей в блоге: 14
03.06.2019, 10:15
Просто?.. Переходите на WPF.
0
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950
03.06.2019, 10:15  [ТС]
Rius, это нереально
0
Эксперт .NET
 Аватар для Rius
13092 / 7651 / 1672
Регистрация: 25.05.2015
Сообщений: 23,293
Записей в блоге: 14
03.06.2019, 10:21
Ну вы же хотели "просто"?

Вот сложно: Painting Your Own Tabs - Second Edition.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.06.2019, 10:21
Помогаю со студенческими работами здесь

Как убрать синие границы в excel
Как убрать синие границы в excel, которые появляются в режиме разметки страницы

Как убрать наружные границы вокруг таблицы в HTML
Здравствуйте! Я новичок в сфере HTML, сейчас передо мною стоит задание сверстать сайт с помощью таблиц (не каким либо другим способом, а...

Видны границы у изображения в гугл хром и ИЕ, как их можно убрать?
видно что есть граница, странно, но в firefox, opera и safari такого не наблюдается, че это с ними?

Как убрать границы таблицы, если она не вмещается на один лист и переходит на следующий?
Как убрать границы таблицы,если она не вмещается на один лист и переходит на следующий,а верхней границы не должно быть,т.к. это...

Убрать закладки в TabControl
Есть табконтрол, в нем много табпейджов, как мне убрать все переключатели(название табпейджов) но чтобы пейджы остались(я програмно их...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru