TabPage不会保留添加的控件

时间:2013-01-24 19:56:53

标签: c# vb.net .net-4.0 tabcontrol

我在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

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

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

0 个答案:

没有答案