TableLayoutPanel因autosize和/或嵌套的TableLayoutPanels而变慢?

时间:2013-02-18 07:37:05

标签: c# winforms tablelayoutpanel

我有一些TableLayoutPanel,其中第一个“图层”有1列和10行,其中一些行包含UserControl或另一个包含2或3列和一些行的TableLayoutPanel。其中一个或两个包含另一个TableLayoutPanel,但就是这样。所以嵌套的TableLayoutPanels最多有3个“级别”。其中大多数都设置为自动调整大小,因为某些UserControl可能会改变其大小。当一个包含这样一个嵌套的TableLayoutPanel的表单,UserControls“闪烁”时,看起来它们的加载速度非常慢。

  • 我是否使用过多的自动调整功能?
  • 或者我的Panel太嵌套了吗?

1 个答案:

答案 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

希望这有帮助。