我用C#和VB.Net开发,所以无论是代码样式对我来说都很好理解我需要做什么 .

我正在动态构建一个TabControl . 在这样做的同时,我还在TabPages中添加控件,因为我将它们添加到TabControl中 . 问题是第一个选项卡(索引0)的加载速度总是比第二个选项卡(索引1)快 .

这是我用来构建TabControl的代码:

tabFranchises = New TabControl  //Initialize a fresh new TabControl object
tabFranchises.Dock = DockStyle.Fill

Dim tbp As TabPage
Dim bi As BrandInfo

//TODO: Load an individual tab for each Franchise
For Each row As FranchiseRow In dt
    tbp = New TabPage(row.nm)
    tbp.Name = "tab" & row.id
    AddHandler tbp.Enter, AddressOf TabPage_Enter       //General Method assignment to Enter Event
    //AddHandler tbp.Leave, AddressOf TabPage_Leave     //General Method assignment to Leave Event

    bi = New BrandInfo(row.id)

    tbp.Controls.Add(bi)
    tabFranchises.TabPages.Add(tbp)
Next

//Add TabControl to `pnlContent`
pnlContent.Controls.Add(tabFranchises)

这是 TabPage_Enter 方法:

Private Sub TabPage_Enter(sender As Object, e As EventArgs)
    //MsgBox(CType(sender, TabPage).Name & " Enter")

    Dim tp As TabPage = CType(sender, TabPage)
    tp.Controls.Clear()

    Dim bi As New BrandInfo(CShort(Strings.Mid(tp.Name, 4)))
    tp.Controls.Add(bi)

End Sub

无论发生什么事情,每次我从第一个标签点击到第二个标签时,第二个标签加载时第一个标签的加载和视觉残余都有延迟 . 但是,当我从第二个选项卡单击到第一个选项卡时,它会立即完成重新加载,而第一个选项卡加载时第二个选项卡没有“重影” .

有关如何解决加载标签的速度的任何想法?