簡體   English   中英

如何使TabPage的標題文本變為粗體?

[英]How do I make a TabPage's title text bold?

我在C#Windows應用程序中有一些tabControl。 它有一些tabPages。 有沒有人知道如何使tabPage Text成為Bold ..?

您需要處理TabControlDrawItem事件以手動繪制標題。 注意:受影響控件的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));

}

在Winforms中,您可以更改DrawMode並繪制自己的所有標題。

請參閱MSDN示例

另一個不太優雅的選項是將父窗體/控件的font-> bold屬性設置為true,這將使所有內容都變為粗體,包括選項卡名稱,然后在不想要粗體的所有控件上將粗體設置為false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM