0

我使用 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

不管发生什么,每次我从第一个选项卡单击到第二个选项卡时,在加载第二个选项卡时都会出现加载延迟和第一个选项卡的视觉残留。但是,当我从第二个选项卡单击到第一个选项卡时,它会立即完全重新加载,而在第一个选项卡加载时第二个选项卡没有“重影”。

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

4

0 回答 0