5

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

注意:仅在初始切换时速度较慢。

这就是我添加用户控件的方式

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;
4

2 回答 2

1

这是 TabControl 的一个特性:选项卡的内容仅在第一次单击时才会加载。

因此,这似乎是第二个标签页上那个 UC 的问题,寻找它使用的资源(查询)。

于 2010-11-24T15:35:38.223 回答
1

您是否在调用SuspendLayout以及ResumeLayout加载所有控件之前和之后。

像这样

UserControlName.SuspendLayout();

//Load all of the controls

UserControlName.ResumeLayout();

这将导致它在初始化您尝试加载的所有控件之前不绘制任何内容。

于 2010-11-24T15:47:05.950 回答