Изменение внешнего вида элемента управления TabControl и tabPage
Цитата: Удаленный пользователь от 30.04.2022, 17:48Доброго времени суток , Жители Форума
нужна ваша помощь подскажите если знаете как изменить цвет панели в TabControl сам Цвет панели меняется а вот вкладки tabPage остаются без изменений+ окантовкаискал в интернете не могу найти
Доброго времени суток , Жители Форума

Цитата: Удаленный пользователь от 30.04.2022, 19:02Добрый день.
[spoiler title="Код"]
private void Form1_Load(object sender, EventArgs e) { tabControl1.Location = new Point(81, 69); tabControl1.Size = new Size(120, 95); tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed; tabControl1.DrawItem += new DrawItemEventHandler(tabControl1_DrawItem); Controls.Add(tabControl1); } private void tabControl1_DrawItem(object sender, DrawItemEventArgs e) { // This event is called once for each tab button in your tab control // First paint the background with a color based on the current tab // e.Index is the index of the tab in the TabPages collection. switch (e.Index) { case 0: e.Graphics.FillRectangle(new SolidBrush(Color.Red), e.Bounds); break; case 1: e.Graphics.FillRectangle(new SolidBrush(Color.Blue), e.Bounds); break; default: break; } // Then draw the current tab button text Rectangle paddedBounds = e.Bounds; paddedBounds.Inflate(-2, -2); e.Graphics.DrawString(tabControl1.TabPages[e.Index].Text, this.Font, SystemBrushes.HighlightText, paddedBounds); }[/spoiler]
[spoiler title="Результат"]
[/spoiler]Код нашел здесь. MSDN по DrawItemEventArgs
Добрый день.
private void Form1_Load(object sender, EventArgs e) {
tabControl1.Location = new Point(81, 69);
tabControl1.Size = new Size(120, 95);
tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;
tabControl1.DrawItem += new DrawItemEventHandler(tabControl1_DrawItem);
Controls.Add(tabControl1);
}
private void tabControl1_DrawItem(object sender, DrawItemEventArgs e) {
// This event is called once for each tab button in your tab control
// First paint the background with a color based on the current tab
// e.Index is the index of the tab in the TabPages collection.
switch (e.Index) {
case 0:
e.Graphics.FillRectangle(new SolidBrush(Color.Red), e.Bounds);
break;
case 1:
e.Graphics.FillRectangle(new SolidBrush(Color.Blue), e.Bounds);
break;
default:
break;
}
// Then draw the current tab button text
Rectangle paddedBounds = e.Bounds;
paddedBounds.Inflate(-2, -2);
e.Graphics.DrawString(tabControl1.TabPages[e.Index].Text, this.Font, SystemBrushes.HighlightText, paddedBounds);
}

Код нашел здесь. MSDN по DrawItemEventArgs
Цитата: Удаленный пользователь от 30.04.2022, 19:21Добрый день
https://github.com/gratianlup/TabControl
http://youtu.be/yBbDyRdaxLc
Добрый день
https://github.com/gratianlup/TabControl
http://youtu.be/yBbDyRdaxLc
Цитата: Удаленный пользователь от 01.05.2022, 17:08Благодарю всех кто ответил !
Но использую FormBorderStyle None - Дизайн ХрисТ (из видео Уроков по C#)
И на нем это не работает - Белый и все ...
Уважаемый ХрисТ , в чем может быть проблема ? Подскажите пожалуйста ...
Благодарю всех кто ответил !
Но использую FormBorderStyle None - Дизайн ХрисТ (из видео Уроков по C#)
И на нем это не работает - Белый и все ...
Уважаемый ХрисТ , в чем может быть проблема ? Подскажите пожалуйста ...
Цитата: admin от 01.05.2022, 17:26Вот поэтому лично по почте Я и сказал, что вместо танцев с бубном и переопределения Я бы написал своё.
Клик по вкладке открывает панель и скрывает в цикле другую. И что-то Мне подсказывает, что Мои велосипеды быстрее и меньше места занимают, чем то, что под капотом фреймворков. Да и для развития полезно часто писать именно своё. В том же Win 10 Tweaker почти всё своё. Все панели, все всплывашки, все тогглы, все плашки, вся логика написана вручную и занимает минимум места. Более того, пригождается в других проектах. А для мозгов полезно – потому что написав код, смотришь как его оптимизировать и в итоге вся конструкция занимает пару строк. Буквально.
Вот поэтому лично по почте Я и сказал, что вместо танцев с бубном и переопределения Я бы написал своё.
Клик по вкладке открывает панель и скрывает в цикле другую. И что-то Мне подсказывает, что Мои велосипеды быстрее и меньше места занимают, чем то, что под капотом фреймворков. Да и для развития полезно часто писать именно своё. В том же Win 10 Tweaker почти всё своё. Все панели, все всплывашки, все тогглы, все плашки, вся логика написана вручную и занимает минимум места. Более того, пригождается в других проектах. А для мозгов полезно – потому что написав код, смотришь как его оптимизировать и в итоге вся конструкция занимает пару строк. Буквально.
