C#實現(xiàn)TabControl選項卡豎著排列,控件文字橫向顯示,被選中的卡片背景色和字體顏色不同(最詳細)
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
新建一個tabControl,名字為tabControl1,選中并修改其以下屬性: 1、DrowMode=OwnerDrawFixed // 2、Alignment=left //選項卡向左靠齊 3、SizeMode=Fixed //設(shè)置此項后,設(shè)置ItemSize使表格更美觀 4、ItemSize=30,100 //選項卡內(nèi)的控件大小 5、增加:using System.Drawing; 在此控件的DrawItem事件中加入以下代碼: private void tabControl1_DrawItem(object sender, DrawItemEventArgs e) { string text = ((TabControl)sender).TabPages[e.Index].Text; //標簽背景填充顏色 SolidBrush BackBrush = new SolidBrush(Color.Transparent); //被激活標簽背景填充顏色 SolidBrush BackBrush_active = new SolidBrush(Color.Yellow); //標簽文字填充顏色 SolidBrush FrontBrush = new SolidBrush(Color.Black); //被激活標簽文字填充顏色 SolidBrush FrontBrush_active = new SolidBrush(Color.Red); //設(shè)置文字對齊方式 StringFormat sf = new StringFormat(StringFormatFlags.DirectionRightToLeft); sf.LineAlignment = StringAlignment.Center; sf.Alignment = StringAlignment.Center; e.Graphics.DrawString(text, new Font("宋體", 10), FrontBrush, e.Bounds, sf); for (int i = 0; i < tab_main.TabPages.Count; i++) { //獲取標簽頭工作區(qū)域 Rectangle Rec = tab_main.GetTabRect(i); //繪制標簽頭背景顏色 e.Graphics.FillRectangle(BackBrush, Rec); } if (e.Index == this.tab_main.SelectedIndex) { //獲取標簽頭工作區(qū)域 Rectangle Rec = tab_main.GetTabRect(e.Index); //繪制標簽頭背景顏色 e.Graphics.FillRectangle(BackBrush_active, Rec); //繪制標簽頭字體顏色 e.Graphics.DrawString(text, new Font("宋體", 10), FrontBrush_active, e.Bounds, sf); } } 選中tabControl1,在屬性欄單擊事件,選擇DrawItem點擊后邊的下拉菜單,將其事件設(shè)置為tabControl1_DrawItem,如下圖: 此時打開工程目錄并不顯示,運行即可看到效果: 注意事項: 選項卡控件的格式需要自己去寫在DrawItemEventHandler的Font里。 該文章在 2021/2/18 22:21:05 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |