嵌套TableLayoutPanel重绘缓慢,如何在VS中创建子类并添加到工具箱?
解决TableLayoutPanel重绘缓慢:自定义双缓冲子类及工具箱添加步骤
1. 创建自定义双缓冲TableLayoutPanel子类
在Visual Studio中右键你的项目,选择「添加」→「类」,命名为DoubleBufferedTableLayoutPanel,然后替换类代码为:
using System.Windows.Forms; public class DoubleBufferedTableLayoutPanel : TableLayoutPanel { public DoubleBufferedTableLayoutPanel() { // 启用双缓冲核心样式,解决重绘卡顿 SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer, true); UpdateStyles(); } }
原生TableLayoutPanel的DoubleBuffered属性是受保护的,没法直接在设计器里设置,通过子类化调用SetStyle才能真正启用双缓冲。
2. 将自定义控件添加到工具箱
- 先编译你的项目(Ctrl+Shift+B),编译成功后,自定义控件会自动出现在工具箱的「你的项目名称」分组下。
- 如果没自动出现,右键工具箱空白处→「选择项」→「浏览」,找到项目生成的.dll文件(一般在项目目录的bin/Debug或bin/Release下),选中后点击「确定」,控件就会出现在工具箱里。
3. 替换原有控件
把窗体里的3个原生TableLayoutPanel删掉,从工具箱拖入DoubleBufferedTableLayoutPanel,还原之前的嵌套布局和控件绑定,之后测试窗体最大化/最小化,重绘卡顿问题就能解决。
内容的提问来源于stack exchange,提问作者Adil Ahmed
相关产品推荐
相关产品推荐

