| C#实现TabControl选项卡竖着排列,控件文字横向显示,被选中的卡片背景色和字体颜色不同(最详细)
					当前位置:点晴教程→知识管理交流
					
					→『 技术文档交流 』
					
				 
 新建一个tabControl,名字为tabControl1,选中并修改其以下属性: 1、DrowMode=OwnerDrawFixed // 2、Alignment=left //选项卡向左靠齐 3、SizeMode=Fixed //设置此项后,设置ItemSize使表格更美观 4、ItemSize=30,100 //选项卡内的控件大小 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);     //设置文字对齐方式     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++)     {         //获取标签头工作区域         Rectangle Rec = tab_main.GetTabRect(i);         //绘制标签头背景颜色         e.Graphics.FillRectangle(BackBrush, Rec);     }     if (e.Index == this.tab_main.SelectedIndex)     {         //获取标签头工作区域         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点击后边的下拉菜单,将其事件设置为tabControl1_DrawItem,如下图: 此时打开工程目录并不显示,运行即可看到效果: 注意事项: 选项卡控件的格式需要自己去写在DrawItemEventHandler的Font里。 该文章在 2021/2/18 22:21:05 编辑过 | 关键字查询 相关文章 正在查询... |