C# TabControl手动触发DrawItem的实现
作者:naruto2017 时间:2023-12-27 17:01:27
当需要重绘TabControl的背景颜色时,有两种方法。
方法一
网上有很多文章介绍,将tabControl的DrawMode属性设为OwnerDrawFixed,然后在其DrawItem事件处理程序中重绘背景颜色。
private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
//标签header的背景
for (int i = 0; i < tabControl1.TabPages.Count; i++)
{
e.Graphics.FillRectangle(Brushes.White, (sender as TabControl).GetTabRect(i));
}
//tabControl背景
e.Graphics.FillRectangle(Brushes.White, (sender as TabControl).ClientRectangle);
}
方法二
当将tabControl的ItemSize设为(0,1)以便隐藏标签title的时候,方法一的事件不会被触发,会导致背景颜色无法重绘,这时候可以使用以下代码手动执行重绘。
private void ReDrawItem()
{
Graphics g = Graphics.FromHwnd(tabControl1.Handle);
//tabPage标签header的背景
for (int i = 0; i < tabControl1.TabPages.Count; i++)
{
g.FillRectangle(Brushes.White, tabControl1.GetTabRect(i));
}
//tabControl背景
g.FillRectangle(Brushes.White, tabControl1.ClientRectangle);
}
来源:https://blog.csdn.net/szy759590387/article/details/127881309
标签:C#,TabControl,DrawItem
0
投稿
猜你喜欢
mybatis中的count()按条件查询方式
2022-06-30 06:04:29
SpringCloud Zuul过滤器和谷歌Gauva实现限流
2022-08-31 11:59:21
C#中异步回调函数用法实例
2023-01-05 13:10:53
springboot redis分布式锁代码实例
2023-12-05 21:40:10
Java学习基础之安装JDK/配置JDK环境&IEDA工具安装
2023-02-09 13:02:40
C#游戏开发之实现贪吃蛇游戏
2023-01-28 01:48:48
Android自定义view实现列表内左滑删除Item
2021-10-28 17:19:50
设置JavaScript自动提示-Eclipse/MyEclipse
2022-06-15 12:41:05
Spring Security配置多个数据源并添加登录验证码的实例代码
2022-11-19 13:49:26
使用IDEA异常断点来定位java.lang.ArrayStoreException的问题
2022-06-14 00:43:18
Android RecyclerView选择多个item的实现代码
2022-06-09 10:56:56
Java与SpringBoot对redis的使用方式
2021-06-11 19:23:39
Java编程实现对十六进制字符串异或运算代码示例
2023-11-06 15:58:15
C#实现上位机与欧姆龙PLC通讯(FINS)
2022-10-05 03:10:08
C#编程中设置程序只可被运行一次的方法
2022-08-09 08:36:32
springboot整合token的实现代码
2023-11-10 19:02:03
JDK集合源码之解析TreeMap(一)
2021-08-09 07:14:02
Unity实现枚举类型中文显示
2023-02-22 12:00:28
Spring中RedisTemplate的基本使用浅析
2023-03-08 05:46:50
浅谈Java自定义类加载器及JVM自带的类加载器之间的交互关系
2021-09-12 23:37:24