簡體   English   中英

在tabcontrol中將Bold字體放在選項卡的標題中c#

[英]Put Bold font in title of tab in a tabcontrol c#

我有這個標簽控件:

tabcontrol2

我需要將標簽名稱“Notes”放在粗體字體中,但我不知道如何操作。

我試過這段代碼:

tabControl2.Font = new Font(this.Font, FontStyle.Bold);

但是,它將所有選項卡都加粗。 然后我嘗試了這個:

tabControl2.TabPages["Notes"].Font = new Font(this.Font, FontStyle.Bold);

我也試過這個: 如何使TabPage的標題文字變粗?

Graphics g = e.Graphics;
            Brush _TextBrush;

            // Get the item from the collection.
            TabPage _TabPage = tabControl2.TabPages["Notes"];

            // Get the real bounds for the tab rectangle.
            Rectangle _TabBounds = tabControl2.GetTabRect(1);

            _TextBrush = new System.Drawing.SolidBrush(e.ForeColor);

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

            // Draw string. Center the text.
            StringFormat _StringFlags = new StringFormat();
            _StringFlags.Alignment = StringAlignment.Center;
            _StringFlags.LineAlignment = StringAlignment.Center;
            g.DrawString(tabControl2.TabPages["Notes"].Text, _TabFont, _TextBrush, _TabBounds, new StringFormat(_StringFlags));

但是,它將選項卡的所有內容都以粗體顯示,而不是標題。 我不知道如何把這個特定標簽的標題。 有沒有人有想法?

我希望我能為你提供任何幫助。

在此輸入圖像描述

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        tabControl.DrawMode = TabDrawMode.OwnerDrawFixed;
        tabControl.DrawItem += TabControlOnDrawItem;
    }

    private FontStyle HasNotification(string tabText)
    {
        return tabText.Equals("Notes") && true 
                   ? FontStyle.Bold
                   : FontStyle.Regular;
    }

    private void TabControlOnDrawItem(object sender, DrawItemEventArgs e)
    {
        var tab = (TabControl) sender;

        var tabText = tab.TabPages[e.Index].Text;

        e.Graphics
         .DrawString(tabText
                     , new Font(tab.Font.FontFamily
                                , tab.Font.Size
                                , HasNotification(tabText))
                     , Brushes.Black
                     , e.Bounds
                     , new StringFormat
                       {
                           Alignment = StringAlignment.Center,
                           LineAlignment = StringAlignment.Center
                       });
    }
}

暫無
暫無

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

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