【Winform】TabControl使用匯總
一、改變標簽顏色
tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed; ItemTabControl.DrawItem += new System.Windows.Forms.DrawItemEventHandler(ItemTabControl_DrawItem);
private void tabControl1_DrawItem(object sender, DrawItemEventArgs e) { //標簽默認文字顏色 SolidBrush DefaultFrontBrush = new SolidBrush(Color.Black); //改變的標簽背景顏色 SolidBrush BackBrush = new SolidBrush(Color.FromArgb(255, 0, 0)); //標簽默認背景顏色 SolidBrush BackBrushDefault = new SolidBrush(Color.Transparent); //標簽文字,選中的標簽文字加粗 Font font = new Font("宋體", 9); Font fontbold = new Font("宋體", 9, FontStyle.Bold); //設置文字對齊方式 StringFormat StringF = new StringFormat(); StringF.Alignment = StringAlignment.Center; StringF.LineAlignment = StringAlignment.Center; for (int i = 0; i < MainTabRes.Count; i++) { //獲取標簽頭工作區域 Rectangle Rec = tabControl1.GetTabRect(i); string text = tabControl1.TabPages[i].Text; if (MainTabRes[i] == false)//MainTabRes指示要改變背景色的標簽索引,List<bool> MainTabRes = new List<bool>(); { e.Graphics.FillRectangle(BackBrush, Rec); } else { e.Graphics.FillRectangle(BackBrushDefault, Rec); } if (i == tabControl1.SelectedIndex) { //繪制標簽頭文字 e.Graphics.DrawString(text, fontbold, DefaultFrontBrush, Rec, StringF); } else { e.Graphics.DrawString(text, font, DefaultFrontBrush, Rec, StringF); } } }
/*******相與枕藉乎舟中,不知東方之既白*******/

浙公網安備 33010602011771號