窗口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是我自己控件的名称,根据自己实际控件名称修改
效果如下: