Вопрос по c#, winforms, tabcontrol, .net – Как сделать текст заголовка TabPage жирным?

5

У меня есть некоторые tabControl в приложении C # Windows. Он имеет несколько вкладок. Кто-нибудь знает, как заставить текст tabPage стать жирным шрифтом?

WPF или Winform? Arsen Mkrtchyan
Winform. Я хочу сделать жирным заголовок вкладки. vts123
Что вы хотите сделать жирным шрифтом? Заголовок вкладки или содержимое вкладки? Jon Seigel
Посмотреть здесь:stackoverflow.com/questions/180563/bold-text-for-a-tab-control Jon Seigel

Ваш Ответ

3   ответа
3

е.

УвидетьПример MSDN.

0

bold родительской формы / элемента управления значение true, что сделает все полужирным, включая имена вкладок, а затем установить полужирное значение false для всех элементов управления, для которых жирный шрифт не нужен.

11

DrawItem событиеTabControl вручную нарисовать подпись. Замечания:DrawMode затронутого контроля должен быть установлен вTabDrawMode.OwnerDrawFixed.

Вот образец:

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.Blue);
        g.FillRectangle(Brushes.Gray, e.Bounds);
    }
    else
    {
        _TextBrush = new System.Drawing.SolidBrush(e.ForeColor);
       // e.DrawBackground();
    }

    // Use our own font. Because we CAN.
    Font _TabFont = new Font(e.Font.FontFamily, (float)9, FontStyle.Bold, GraphicsUnit.Pixel);
    //Font fnt = new Font(e.Font.FontFamily, (float)7.5, FontStyle.Bold);

    // 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));

}
Просто чтобы добавить к этому:DrawMode затронутого контроля должен быть установлен вTabDrawMode.OwnerDrawFixedэто делает использованиеDrawItem-event обязательно (если вы оставите код этого метода пустым, строка заголовка вкладок тоже будет пустой) DrCopyPaste

Похожие вопросы