我在C#和VB.Net中开发,所以无论是代码风格对我来说都有利于理解我需要的东西。
我正在动态构建一个TabControl。在这样做的同时,我也在TabPaages中添加控件,因为我将它们添加到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
无论发生什么事情,每次我从第一个标签点击到第二个标签时,第二个标签加载时第一个标签的加载和视觉残余都有延迟。但是,当我从第二个选项卡单击到第一个选项卡时,它会立即完成重新加载,而第一个选项卡加载时第二个选项卡没有“重影”。
有关如何解决加载标签页的速度的任何想法?