首页 > 其他分享 >自定义重绘TabControl的各个标签

自定义重绘TabControl的各个标签

时间:2023-09-20 15:13:46浏览次数:33  
标签:自定义 Color 标签 tabControl1 SolidBrush new TabControl 重绘 Rectangle


设置DrawItem事件
private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)//绘制tabcontrol控件的标签颜色和字体大小
{
SolidBrush back;
SolidBrush white;
SolidBrush black = new SolidBrush(Color.Black);//字体的颜色
if (e.Index==tabControl1.SelectedIndex)//选中标签的颜色
{
back = new SolidBrush(Color.Wheat);
white = new SolidBrush(Color.Blue);
}
else//其他标签的颜色
{
back = new SolidBrush(Color.SeaShell);
white = new SolidBrush(Color.Blue);
}
StringFormat sf = new StringFormat()
{
Alignment = StringAlignment.Center,
LineAlignment=StringAlignment.Center
};
//绑定选项卡
Rectangle rec1 = tabControl1.GetTabRect(e.Index);
//设置选项卡背景
e.Graphics.FillRectangle(back, rec1);
for (int i = 0; i < tabControl1.TabPages.Count; i++)
{
Rectangle rec = tabControl1.GetTabRect(i);
//设置标签文字字体和文字大小
e.Graphics.DrawString(tabControl1.TabPages[i].Text, new Font("宋体", 15, FontStyle.Bold), black, rec, sf);
}
//SolidBrush bisque = new SolidBrush(Color.White);//绘制标签1的颜色
//SolidBrush lightcyan = new SolidBrush(Color.LightCyan);//绘制标签2的颜色
//SolidBrush LightPink = new SolidBrush(Color.LightPink);
//SolidBrush black = new SolidBrush(Color.Black);//字体的颜色
//StringFormat stringFormat = new StringFormat();
//stringFormat.Alignment = StringAlignment.Center;//设置标签文字居中显示
//stringFormat.LineAlignment = StringAlignment.Center;
//Rectangle rec1 = tabControl1.GetTabRect(0);
//Rectangle rec2 = tabControl1.GetTabRect(1);
//Rectangle rec3 = tabControl1.GetTabRect(2);
//e.Graphics.FillRectangle(lightcyan, rec1);
//e.Graphics.FillRectangle(lightcyan, rec2);
//e.Graphics.FillRectangle(lightcyan, rec3);
//for (int i = 0; i < tabControl1.TabPages.Count; i++)
//{
// Rectangle rec = tabControl1.GetTabRect(i);
// //设置标签文字字体和文字大小
// e.Graphics.DrawString(tabControl1.TabPages[i].Text, new Font("宋体", 15, FontStyle.Bold), black, rec, stringFormat);
//}

    }

标签:自定义,Color,标签,tabControl1,SolidBrush,new,TabControl,重绘,Rectangle
From: https://www.cnblogs.com/fjfhwfn/p/17717354.html

相关文章

  • 自定义字符串截取函数
    CREATEORREPLACEFUNCTIONSBUSTR(STR_INPUTINVARCHAR2,LENGTH_INPUTINNUMBER)RETURNVARCHAR2ISINUMBER;SUB_STRVARCHAR2(2000);SUB_LENGTHNUMBER:=0;STR_COUNTNUMBER:=0;TEMPNUMBER:=0;RETURN_ST......
  • joi 自定义错误提示
    <template><div><divclass="bg-whiterounded-lgfont-lightw-96shadowp-4"><divclass="text-centertext-lgmb-4">后台管理系统</div><[email protected]="(e)=>{}">......
  • Excel单元格自定义格式技巧总结
      Excel单元格自定义格式技巧总结  第一部分Excel中的单元格格式是一个最基本但是又很高级的技能,说它基本是因为我们几乎天天都会用到它,会用它来设置一些简单的格式,比如日期,文本等等;高级是因为利用Excel单元格的自定义格式我们可以实现一些看起来非常神奇和有用的效......
  • 实现mapreduce多文件自定义输出
     普通maprduce中通常是有map和reduce两个阶段,在不做设置的情况下,计算结果会以part-000*输出成多个文件,并且输出的文件数量和reduce数量一样,文件内容格式也不能随心所欲。这样不利于后续结果处理。如果只是想做到输出结果的文件名可控,实现自己的LogNameMultipleTextOutputFormat类,......
  • el-table中自定义悬浮提示结构,添加复制功能
    效果展示:代码:代码copyText(text){navigator.clipboard.writeText(text).then(()=>{this.$message.success("文本复制成功");}).catch(()=>{this.$message.error("文本复制失败");......
  • 表格的自定义排序 编辑 拖拽 缩放
    终于能闲下来做点自己想做的事情了.. 简单表格排序  可以双击编辑自定义编辑后的规则 可拖动列进行列替换 可推动边框进行列宽度的缩放  ie6下中文不自动换行 非ie下字母和数字也不自动换行确实让人恼火 chrome浏览器下点击运行好像问题很大 拿到本地测试会比较好<!......
  • 第05章-自定义函数和JSON数据解析
    目录5.1实现自定义UDF25.2实现自定义UDTF35.3实现自定义UDAF45.4解析JSON数据65.4.1解析OBJECT数据65.4.2解析ARRAY数据75.4.3禁止使用get_json_object函数8第05章自定义函数和JSON数据解析自定义函数简介有一些sql很难处理的逻辑,我们可以使用自定义函数去处理。比......
  • uniapp项目实践总结(十八)自定义多列瀑布流组件
    导语:有时候展示图片等内容,会遇到图片高度不一致的情况,这时候就不能使用等高双列或多列展示了,这时候会用到瀑布流的页面布局,下面就一起探讨一下瀑布流的实现方法。目录准备工作原理分析实战演练案例展示准备工作在pages/index文件夹下面新建一个waterfall.vue的组件;按......
  • 在C#中如何自定义配置上周和本周起始日来查询业务数据?
    作者:西瓜程序猿主页传送门:https://blog.51cto.com/kimiliucn前言在做某个报表管理功能时,有一个需求:需要根据自定义配置的[周起始日]来统计上周、本周的订单数据。在C#中并没有封装的方法根据我们需要来直接获取上一周某天到某天、本周某天到某天,所以需要我们自己封装方法来实现(我们......
  • 在C#中如何自定义配置上周和本周起始日来查询业务数据?
    作者:西瓜程序猿主页传送门:https://www.cnblogs.com/kimiliucn前言在做某个报表管理功能时,有一个需求:需要根据自定义配置的[周起始日]来统计上周、本周的订单数据。在C#中并没有封装的方法根据我们需要来直接获取上一周某天到某天、本周某天到某天,所以需要我们自己封装方法......