窗口Load加下面代码,ItemSize根据自己显示文本长度调整
#region tabMainItem属性设置
this.tabModuleMainItem.DrawMode = TabDrawMode.OwnerDrawFixed;
this.tabModuleMainItem.Alignment = TabAlignment.Top;
this.tabModuleMainItem.SizeMode = TabSizeMode.Fixed;
this.tabModuleMainItem.Multiline = true;
this.tabModuleMainItem.ItemSize = new Size(70, 26);
this.tabModuleMainItem.DrawItem += new DrawItemEventHandler(tabModuleMainItem_DrawItem);
#endregion
选项卡重绘函数
private void tabModuleMainItem_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
Font font;
Brush bshBack;
Brush bshFore;
if (e.Index == this.tabModuleMainItem.SelectedIndex)
{
font = new Font("微软雅黑", 12.5f, FontStyle.Bold);
bshBack = new SolidBrush(Color.Yellow);
bshFore = Brushes.Black;
}
else
{
font = new Font("微软雅黑", 12f, FontStyle.Regular);
bshBack = new SolidBrush(Color.Gray);
bshFore = new SolidBrush(Color.White);
}
StringFormat sftTab = new StringFormat();
sftTab.LineAlignment = StringAlignment.Center;
sftTab.Alignment = StringAlignment.Center;
e.Graphics.FillRectangle(bshBack, e.Bounds);
Rectangle recTab = e.Bounds;
recTab = new Rectangle(recTab.X, recTab.Y + 4, recTab.Width, recTab.Height - 8);
e.Graphics.DrawString(this.tabModuleMainItem.TabPages[e.Index].Text, font, bshFore, recTab, sftTab);
}
注意:tabModuleMainItem是我自己控件的名称,根据自己实际控件名称修改
效果如下: