TabControls.TabPages(1) hide und show geht nicht

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von mox.

    TabControls.TabPages(1) hide und show geht nicht

    Hallo,

    ich habe mehrere Reiter mit TabPages. Ich möchte unter verschiedenen Umständen verschiedene Tabpages ausblenden. Leider funktionier das Ganze nich:

    TabControl1.TabPages(1).Hide()
    TabControl1.TabPages(2).Hide()
    TabControl1.TabPages(3).Hide()
    TabControl1.TabPages(4).Hide()
    TabControl1.TabPages(5).Hide()



    Nichts wird verborgen, alles noch da. Das habe ich jetzt mehrmals im Internet gelesen, das wär halt so. Kann doch aber nicht sein, für was soll sonst hide gut sein? Es wird im Internet remove oder dispose empfohlen. na da sind die weg und ich krieg Sie auch nicht mehr mit New so hin, wie ich sie haben möchte. Dann sind nähmlich alle Felder in den Tabpages auch weg. Ein Königreich für eine Idee!

    VB.NET-Quellcode

    1. TabControl1.TabPages(1).Hide()
    blendet die Controls auf dem TabPage aus. Wird die TabPage erneut selektiert, sind die Controls wieder da.

    VB.NET-Quellcode

    1. Me.TabControl1.Controls.Add(Me.TabPage1)
    2. ' bzw.
    3. Me.TabControl1.Controls.RemoveAt(1)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Meine Lösung

    VB.NET-Quellcode

    1. 'alle Reiter und Eingabefelder verstecken
    2. TabControl1.TabPages.Remove(TabPage2)
    3. TabControl1.TabPages.Remove(TabPage3)
    4. TabControl1.TabPages.Remove(TabPage4)
    5. '...
    6. 'später dann
    7. TabControl1.TabPages.Add(TabPage2)
    8. TabControl1.TabPages.Add(TabPage3)
    9. TabControl1.TabPages.Add(TabPage4)

    Nach dem Add sind Microsoft sei Dank alle Steuer-Elemente der TabPages auch wieder da.
    Hallo,
    das Thema ist zwar schon älter aber ich stand heute vor dem gleichen Problem und habe diesen Thread über Google als erstes gefunden. Nach etwas Probieren bin ich zu dieser Lösung gekommen (direkt aus meinem Projekt aber ihr werdet das schon verstehen) Vielleicht hilfts ja jemandem.

    Kurze Erklärung:
    Bei mir ist das Ziel alle bis auf einen Tab (tp_Grunddaten) auszublenden und später wieder alle anderen Tabs einzublenden.

    VB.NET-Quellcode

    1. Dim tabsArr As New ArrayList
    2. Private Sub TabControl_Tabs_Deaktivieren()
    3. tabsArr.Clear()
    4. Dim tabs As TabPage
    5. For Each tabs In tc_AuftragsDetails.TabPages
    6. If tabs.Name IsNot "tp_Grunddaten" Then
    7. tc_AuftragsDetails.TabPages.Remove(tabs)
    8. tabsArr.Add(tabs)
    9. End If
    10. Next
    11. End Sub
    12. Private Sub TabControl_Tabs_Aktivieren()
    13. For Each tabs In tabsArr
    14. If tabs IsNot "tp_Grunddaten" Then
    15. tc_AuftragsDetails.TabPages.Add(tabs)
    16. End If
    17. Next
    18. End Sub