2016-02-23 2 views
-1

Я следил за этим решением set-tabpage-header-color, чтобы изменить цвета на заголовке моих вкладок. Однако это устанавливает тот же цвет в заголовках вкладок всех вкладок в tabcontrol. Можете ли вы помочь мне изменить цвет только в заголовке выбранной вкладки? действительно ценю любую помощь здесь. Спасибоvisual C# Изменить цвет заголовка вкладки

ответ

0

Параметр DrawItemEventArgs e сообщит вам все, что вам нужно.

Чтобы нарисовать þér заголовки в различных цветов заменить Brushes.Black на myBrush и поставить DrawString в использовании пункта, как это:

using (SolidBrush myBrush = new SolidBrush (tabControl1.TabPages[e.Index].ForeColor)) 
{ 
    e.Graphics.DrawString(tabControl1.TabPages[e.Index].Text, e.Font, myBrush , 
          e.Bounds.Left + (e.Bounds.Width - sz.Width)/2, 
          e.Bounds.Top + (e.Bounds.Height - sz.Height)/2 + 1); 
} 

Теперь каждый заголовок будет нарисован в ForeColor его TabPage.

Замена DrawString на TextRenderer.DrawText будет еще лучше!

Если вы хотите изменить цвет выбранного вкладки просто использовать проверку, как это:

SolidBrush myBrush = new SolidBrush (e.State.HasFlag(DrawItemState.Selected) ? 
        SystemColors.ActiveCaptionText : SystemColors.ControlText) 
+0

спасибо! Я понял, что метод вызывается для каждой вкладки tabcontrol. Я думал, что это вызвано только для выбранной вкладки. теперь это имеет смысл. большое спасибо – minimouse

Смежные вопросы