TabPages ein/ausblenden, dafür Entfernen bei TabControl++ Library

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von xtts02.

    TabPages ein/ausblenden, dafür Entfernen bei TabControl++ Library

    Hallo.

    Mir ist bekannt, wie man bei einem TabControl Tabpages ein und ausblenden kann,
    dafür kann man die Tabs löschen und wieder hinzufügen(zwischenspeichern geht mit einer List(Of T)).


    Jetzt würde ich allerdings gerne die Library von Gather benutzen und dort einzelne Tabpages ausblenden bzw. einblenden.

    TabControls++

    Ich hab mir Version 1.3.5 geladen.

    Mein Versuch das so wie beim normalen TabControl zu machen schlug fehl, weil Gather die Property .Tabpages mit einer TabPageCollection versehen hat.

    Bei einem normalen TabControl funktionier es so ganz easy:

    VB.NET-Quellcode

    1. Private TabPs As New List(Of TabPage)
    2. Public Sub New()
    3. InitializeComponent()
    4. For Each p As TabPage In TabControl1.TabPages
    5. TabPs.Add(p)
    6. Next
    7. End Sub
    8. Private Sub RemoveExpected(TabName As String)
    9. For Each c As TabPage In TabPs.Where(Function(z) Not z.Name = TabName).ToArray
    10. TabControl1.TabPages.Remove(c)
    11. Next
    12. End Sub
    13. Private Sub AddTabs(TabName As String)
    14. TabControl1.TabPages.AddRange(TabPs.Where(Function(w) Not w.Name = TabName).ToArray)
    15. End Sub






    Bei Gather habe ich den Codeversuch:


    VB.NET-Quellcode

    1. Private P As New List(Of Object)
    2. Private Sub DeleteTbs()
    3. P.Add(TabControlPP1.TabPages)
    4. TabControlPP1.TabPages.Remove(TabPage2) 'Tabpage 2 entfernen um sie auszublenden
    5. End Sub
    6. Private Sub AddTbs()
    7. For Each c As TabPage In TabControlPP1.TabPages
    8. TabControlPP1.TabPages.Remove(c)
    9. Next
    10. For Each t As TabPage In P
    11. TabControlPP1.TabPages.Add(t)
    12. Next
    13. End Sub


    Additional information: Das Objekt des Typs "TabPageCollection" kann nicht in Typ "System.Windows.Forms.TabPage" umgewandelt werden.

    Zeile: For Each t As TabPage In P



    Weiss jemand wie das bei seiner Lib machbar ist?

    Kevin Hombre schrieb:

    Das ist eine List(Of Object) wie Du siehst

    Ganz genau. Es ist also eine Collection
    Wenn Du ein Element hinzufügen willst, nimmst Du die Methode .Add
    Wenn Du mehrere auf einmal (also ein Array) hinzufügen willst, musst Du die .AddRange-Methode verwenden.

    TabControlPP1.TabPages ist eine Collection, also mehrere, und Du verwendest die .Add-Methode