2010-11-24 144 views
4

我有一个选项卡控件有4个标签页。每个标签页都包含一个用户控件,我可以在程序第一次加载时以编程方式添加。出于某种原因,第二个标签页加载速度慢,当我点击它,但其他标签加载罚款。这个标签页包含大约20个控件(文本框,下拉列表,列表框等),但没有图像或类似的东西。此外,该页面与其他页面具有相同数量的控件。有什么方法可以加快标签的切换速度吗?我可以在启动时预加载标签页吗?Windows窗体Tabpage加载缓慢

注意:它只在初始开关上很慢。

这是我如何添加用户控件

tabPage2.Controls.Add(userControl_1); 
     // 
     // userControl_1 
     // 
     userControl_1.Anchor = ((AnchorStyles.Top | AnchorStyles.Bottom) 
            | AnchorStyles.Left) 
           | AnchorStyles.Right; 
     userControl_1.Location = new System.Drawing.Point(0, 0); 
     userControl_1.Name = "userControl_1"; 
     userControl_1.Size = new System.Drawing.Size(878, 646); 
     userControl_1.TabIndex = 0; 
+0

您是否尝试过`userControl_1.Dock = Dockstyle.Fill'而不是所有这些大小和锚点设置? – 2010-11-24 15:45:31

+0

尝试过,但它没有使控件在底部正确,也没有解决缓慢。 – Gage 2010-11-24 15:54:39

+0

这几乎是*从来没有*'加载'是缓慢的(除非数据绑定),它是*绘画*,使它看起来很慢。 – 2010-11-24 15:55:53

回答

1

这是的TabControl的特点:一个选项卡的内容被点击了第一次的时候才会加载。

因此,它会出现在第二个标签页上的UC问题,寻找它使用的资源(查询)。

1

是否在加载所有控件之前和之后调用SuspendLayoutResumeLayout

像这样

UserControlName.SuspendLayout(); 

//Load all of the controls 

UserControlName.ResumeLayout(); 

这将导致直到它已初始化所有你要加载控件它不画任何东西。