代码之家  ›  专栏  ›  技术社区  ›  Gage

Windows窗体选项卡页加载缓慢

  •  4
  • Gage  · 技术社区  · 15 年前

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

    注意:初始开关速度慢。

    这就是我如何添加Usercontrol

    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;
    
    2 回复  |  直到 15 年前
        1
  •  1
  •   Henk Holterman    15 年前

    这是TabControl的一个特性:tab的内容只有在第一次单击时才会加载。

    因此,在第二个选项卡页上,查找它使用的资源(查询),这似乎是UC的问题。

        2
  •  1
  •   msarchet    15 年前

    你在打电话吗 SuspendLayout 和 ResumeLayout 加载所有控件之前和之后。

    像这样

    UserControlName.SuspendLayout();
    
    //Load all of the controls
    
    UserControlName.ResumeLayout();
    

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