【发布时间】:2012-08-16 07:16:55
【问题描述】:
我有两个标签页托管 TableLayoutPanel,我用标签和文本框动态填充它们。第一个有 96 个标签和 96 个文本框,它的闪烁是可以接受/可以容忍的,所以我没有费心添加 SuspendLayout/ResumeLayout 对。
但是,第二个有 96 个标签和 288 个文本框,它的绘画/闪烁是无法忍受的。 IOW,192 控制似乎还可以,但 384 绝对不行。
我在动态创建控件之前调用了 SuspendLayout,然后在 finally 块中调用了 ResumeLayout,但是删除了它们,瞧!与第一个 tabPage/TLP 一样,闪烁是可以接受的。
为什么这种减法加法有效?
【问题讨论】:
-
SuspendLayout是Control类的方法。你打电话给哪个Control? -
好提示;我在“这个”(表格)上调用它。因此,我尝试在 tabPage 和 TableLayoutPanel 上都调用它。它似乎没有比注释掉对 this.SuspendLayout() 和 this.ResumeLayout() 的调用更好/更差。
-
我以前用过帕桑特的那个密码,效果很好,但神明不想用,觉得太神秘了。
-
我已经用 ScrollToCaret() 测试了 SuspendLayout() 并且它会产生闪烁并且不会暂停布局。如果您的布局涉及移动滚动位置,则此方法调用实际上不会暂停屏幕更新。
标签: c# winforms dynamic tabs tablelayoutpanel