У меня есть две формы окон. 1-й является mdiParent формой, названной основной. Вторая - форма представления, являющаяся дочерней формой основной формы. В форме презентаций есть вкладка. В форме презентации есть кнопка настроек. когда я нажимаю кнопку «Настройки», открывается новая форма («prefs») с просьбой нажать на кнопку набора цветов. нажатие этой кнопки открывает диалоговое окноСообщение для изменения цвета. когда я выбираю цвет, изменяется верхний цвет префикса. но dows не изменяет формат вкладки (форма представления) backcolor. Я создаю это приложение в n-уровневой архитектуре. так что помогите мне, как я могу изменить обратную сторону вкладки. Я загружу код, если вы не поняли мой вопрос.Как изменить BackColor Tab?
ответ
TabControls не имеет свойства BackColor, поскольку они обычно рисуются на основе текущей темы системного окна.
Обычно это не стоит усилий, но TabControl имеет свойство DrawMode, в котором вы сами нарисуете вкладку в событии DrawItem.
Каждый элемент управления TabPage имеет свойство BackColor.
вот мой пользовательский обработчик событий. Мне нужно создать цветную рамку, которая окружает текст. Вкладка выбран один цвет и невыбранные еще один ...
private void ChangeTabColor(Object sender, DrawItemEventArgs e)
{
Font TabFont;
Brush BackBrush;// = new SolidBrush(Color.Green); //Set background color
Brush ForeBrush = new SolidBrush(Color.Black);//Set foreground color
Brush borderBrush = new SolidBrush(Color.Black);//Set foreground color
if (e.Index == this.tabMain.SelectedIndex)
{
TabFont = new Font(e.Font, FontStyle.Bold);
BackBrush = new SolidBrush(Color.MediumSeaGreen); //Set background color
//ForeBrush = new SolidBrush(Color.Black);//Set foreground color
}
else
{
TabFont = e.Font;
BackBrush = new SolidBrush(Color.LightSteelBlue); //Set background color
//ForeBrush = new SolidBrush(Color.Yellow);//Set foreground color
}
string TabName = this.tabMain.TabPages[e.Index].Text;
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
Rectangle r = e.Bounds;
r = new Rectangle(r.X, r.Y + 5, r.Width, r.Height - 3);
if (e.Index == this.tabMain.SelectedIndex)
{
Pen rectPen = new Pen(borderBrush, 1.0f);
r.Y -= 2;
r.X += 3;
r.Height -= 9;
r.Width -= 8;
e.Graphics.FillRectangle(BackBrush, r);
e.Graphics.DrawString(TabName, TabFont, ForeBrush, r, sf);
e.Graphics.DrawRectangle(rectPen, r);
}
else
{
Pen rectPen = new Pen(borderBrush, 1.0f);
r.Y -= 2;
r.Height -= 4;
r.Width -= 2;
e.Graphics.FillRectangle(BackBrush, r);
e.Graphics.DrawString(TabName, TabFont, ForeBrush, r, sf);
e.Graphics.DrawRectangle(rectPen, r);
}
//Dispose objects
sf.Dispose();
if (e.Index == this.tabMain.SelectedIndex)
{
TabFont.Dispose();
BackBrush.Dispose();
}
else
{
BackBrush.Dispose();
ForeBrush.Dispose();
}
}
конечно «tabMain» относится к названию управления вкладки. Надеюсь, это поможет вам в том, что вы пытаетесь сделать ... возможно, немного странно, но код не так уж и сложный, и я думаю, что он выглядит немного чище ... плюс для этого я постарался установить свойства approprate для шрифта и размера элемента:
шрифт = Arial, 9PT, стиль = Жирный
ItemSize = 95, 25 ... высота является важной частью, до тех пор, как вы установите SizeMode = Normal
- 1. Невозможно изменить BackColor ListView
- 2. Изменить панель инструментов backcolor
- 3. Невозможно изменить BackColor массива PictureBox
- 4. изменить цвет backcolor в datagridview
- 5. Изменить BackColor элемента управления ToolStripSeparator
- 6. DataGridView CellMouseMove Row BACKCOLOR изменить
- 7. как изменить BackColor для инвалидов ComboBox
- 8. Как изменить backcolor управления на фокусе
- 9. Как альтернативно изменить BackColor текста RTB
- 10. Как изменить кнопку BackColor в ObjectListView
- 11. Как изменить цвет Selected Tab
- 12. Изменить выделение RichTextBox BackColor и ForeColor
- 13. Изменить TextBox BackColor во время выполнения
- 14. мне нужно изменить BackColor моего DataGridView
- 15. Условный стиль не может изменить BackColor
- 16. Изменить цвет фона TAB цвет
- 17. Как изменить BackColor кнопки внутри UserControl с другого UserControl?
- 18. MVVM - Как изменить backcolor для одного символа в datagrid
- 19. Как изменить BackColor области текстового поля в asp.net DropDownList?
- 20. Как изменить BackColor ячейки DataGridView, если он содержит недопустимые данные
- 21. Как изменить цвет backcolor, с цветом заднего объекта?
- 22. Как изменить цвет forecolor/backcolor отключенного числового обновления?
- 23. Как изменить BackColor ComboBox, когда DropdownStyle является DropDownList?
- 24. Изменить высоту Навигация Tab ActionbarSherlock
- 25. Изменить Tab Style в ActionBar
- 26. CSS Table-Row Backcolor vs Table Backcolor
- 27. python изменить '|' в tab delimenated
- 28. Как изменить размер текста в Tab?
- 29. Как изменить цвет Tab Indicator программен
- 30. Xcode - Как изменить место Tab Bar Item