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 编辑过 |
关键字查询
相关文章
正在查询... |