我有一些TableLayoutPanel,其中第一个“图层”有1列和10行,其中一些行包含UserControl或另一个包含2或3列和一些行的TableLayoutPanel。其中一个或两个包含另一个TableLayoutPanel,但就是这样。所以嵌套的TableLayoutPanels最多有3个“级别”。其中大多数都设置为自动调整大小,因为某些UserControl可能会改变其大小。当一个包含这样一个嵌套的TableLayoutPanel的表单,UserControls“闪烁”时,看起来它们的加载速度非常慢。
答案 0 :(得分:4)
我不认为闪烁必须对“自动调整大小”或“嵌套面板”做任何事情。
请参阅另一个'S-O'链接:How to avoid flickering in TableLayoutPanel in c#.net
暂停布局,直到您添加了所有控件。
TableLayoutPanel panel = new TabelLayoutPanel();
panel.SuspendLayout();
// NOW add controls (including nested-controls) -- do autosizing etc
panel.ResumeLayout();
另请参阅使用双缓冲。您必须创建TableLayoutPanel
的子类。请参阅example。
希望这有帮助。