C# tabcontrol重绘,如何避免多次重复绘制

[复制链接]
查看11 | 回复5 | 2021-1-27 05:15:02 | 显示全部楼层 |阅读模式
tabcontrol重绘,重复工作量太大,每次切换页面都会导致tabcontrol的所有页面都重绘,如何避免重复绘制


现在从网上查到的相关信息有如下几条,但是我的问题还是没有解决,可能是不太会用,麻烦大神们帮忙下,特别焦虑,感谢感谢
https://zhidao.baidu.com/question/456368211050502565.html
https://blog.csdn.net/qq_17459305/article/details/105154625

分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:15:02 | 显示全部楼层
引用楼主sinat_14913435的回复:tabcontrol重绘,重复工作量太大,每次切换页面都会导致tabcontrol的所有页面都重绘,如何避免重复绘制


现在从网上查到的相关信息有如下几条,但是我的问题还是没有解决,可能是不太会用,麻烦大神们帮忙下,特别焦虑,感谢感谢
https://zhidao.baidu.com/question/456368211050502565.html
https://blog.csdn.net/qq_17459305/article/details/105154625

切换TabPanel的可见性发生变化了,自然要重绘啊。在重绘的时候加个判断试试:

if(e.Index==tabControl1.SelectedIndex)
{
e.Graphics.FillRectangle(newSolidBrush(BackColor),e.Bounds);
Console.WriteLine(e.Index);
}


回复

使用道具 举报

千问 | 2021-1-27 05:15:02 | 显示全部楼层
这个方法好用,减少了很多重复工作,感谢感谢;
还有一个问题,我的tabpage底色是黑色的,每次新添加一个tabpage页,都会先出现白色的底色,看起来好别扭,这个有办法解决嘛
回复

使用道具 举报

千问 | 2021-1-27 05:15:02 | 显示全部楼层
引用1楼icoolno1的回复:Quote: 引用楼主sinat_14913435的回复:tabcontrol重绘,重复工作量太大,每次切换页面都会导致tabcontrol的所有页面都重绘,如何避免重复绘制


现在从网上查到的相关信息有如下几条,但是我的问题还是没有解决,可能是不太会用,麻烦大神们帮忙下,特别焦虑,感谢感谢
https://zhidao.baidu.com/question/456368211050502565.html
https://blog.csdn.net/qq_17459305/article/details/105154625

切换TabPanel的可见性发生变化了,自然要重绘啊。在重绘的时候加个判断试试:

if(e.Index==tabControl1.SelectedIndex)
{
e.Graphics.FillRectangle(newSolidBrush(BackColor),e.Bounds);
Console.WriteLine(e.Index);
}


这个方法好用,减少了很多重复工作,感谢感谢;
还有一个问题,我的tabpage底色是黑色的,每次新添加一个tabpage页,都会先出现白色的底色,看起来好别扭,这个有办法解决嘛
回复

使用道具 举报

千问 | 2021-1-27 05:15:02 | 显示全部楼层
引用3楼sinat_14913435的回复:Quote: 引用1楼icoolno1的回复:Quote: 引用楼主sinat_14913435的回复:tabcontrol重绘,重复工作量太大,每次切换页面都会导致tabcontrol的所有页面都重绘,如何避免重复绘制


现在从网上查到的相关信息有如下几条,但是我的问题还是没有解决,可能是不太会用,麻烦大神们帮忙下,特别焦虑,感谢感谢
https://zhidao.baidu.com/question/456368211050502565.html
https://blog.csdn.net/qq_17459305/article/details/105154625

切换TabPanel的可见性发生变化了,自然要重绘啊。在重绘的时候加个判断试试:

if(e.Index==tabControl1.SelectedIndex)
{
e.Graphics.FillRectangle(newSolidBrush(BackColor),e.Bounds);
Console.WriteLine(e.Index);
}


这个方法好用,减少了很多重复工作,感谢感谢;
还有一个问题,我的tabpage底色是黑色的,每次新添加一个tabpage页,都会先出现白色的底色,看起来好别扭,这个有办法解决嘛

看不到实际效果不好说,你把控件背景色设成黑色看看
回复

使用道具 举报

千问 | 2021-1-27 05:15:02 | 显示全部楼层


这个方法好用,减少了很多重复工作,感谢感谢;
还有一个问题,我的tabpage底色是黑色的,每次新添加一个tabpage页,都会先出现白色的底色,看起来好别扭,这个有办法解决嘛
看不到实际效果不好说,你把控件背景色设成黑色看看
背景颜色在每次重绘的时候都会设成黑色的
Rectanglerec3=fTclOrderTabControl.ClientRectangle;
e.Graphics.FillRectangle(newSolidBrush(MyColor.BackColor),rec3);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行