Tabpage verstecken

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von jvbsl.

    Tabpage verstecken

    Hallo zusammen,
    ich stehe gerade vor einem einfach klingendem Problem.
    Ich möchte eine Tabpage eines Tabcontrols unsichtbar machen (verstecken).
    Das hab ich dann mit tabpage1.hide() versucht.
    Aber sie versteckt sich nicht.
    Sie ist immer noch sichtbar.
    Kann ich die Tabpage irgendwie anders verstecken?
    Den inhalt möchte ich beibehalten (also nicht remove(...))
    Danke schonmal im Vorraus
    dann wirste diese Wohl temporär in einer Liste speichern müssen und aus dem TabControl löschen und beim anzeigen schließlich wieder hinzufügen...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Visible habe ich derzeit auch nicht gefunden. aber sperren kannst du sie !
    Ist aus einem alten Projekt von mir.

    VB.NET-Quellcode

    1. ' TabPage 8 Berechtigung
    2. Private Sub TabControl3_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl3.SelectedIndexChanged
    3. If TabPageSuchen = True And TabControl3.SelectedTab Is TabPage8 Then
    4. TabControl3.SelectedTab = TabPage8
    5. ElseIf TabPageSuchen = False And TabControl3.SelectedTab Is TabPage8 Then
    6. 'MessageBox.Show("TabPage")
    7. TabControl3.SelectedTab = TabPage9
    8. End If
    9. End Sub


    vieleicht hilft dir das ja

    ChaosBernd schrieb:

    Visible habe ich derzeit auch nicht gefunden. aber sperren kannst du sie !
    Ist aus einem alten Projekt von mir.

    VB.NET-Quellcode

    1. ' TabPage 8 Berechtigung
    2. Private Sub TabControl3_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl3.SelectedIndexChanged
    3. If TabPageSuchen = True And TabControl3.SelectedTab Is TabPage8 Then
    4. TabControl3.SelectedTab = TabPage8
    5. ElseIf TabPageSuchen = False And TabControl3.SelectedTab Is TabPage8 Then
    6. 'MessageBox.Show("TabPage")
    7. TabControl3.SelectedTab = TabPage9
    8. End If
    9. End Sub


    vieleicht hilft dir das ja

    In diesem Fall würde ich anstatt SelectedIndexChanged das Event Selecting nehmen

    VB.NET-Quellcode

    1. Private Sub TabControl1_Selecting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TabControlCancelEventArgs) Handles TabControl1.Selecting
    2. e.Cancel = e.TabPage Is TabPage1
    3. End Sub
    Also eine TabPage verfügt sehrwohl über die Visible-Property, nur wird diese nicht im Namespace angezeigt.
    Es wird die TabPage auch versteckt, jedoch verschwindet der Reiter zur Auswahl dieser TabPage nicht.
    Ich würde also wie die anderen raten mir Remove() und Add() zu machen und die TabPages in einer List(Of TabPage) zwischen zu speichern und eine eigene Funktion schreiben die die TabPages versteckt und sichtbar macht.
    Ich hab das jetzt mal anders versucht (so das die Tabpages mit code erstellt werden:

    VB.NET-Quellcode

    1. shared tabpages as list(of tabpage)
    2. ...
    3. dim tab1 as new tabpage
    4. tabpages.add(tab1)
    5. tabcontrol1.tabpages.add(tab1)


    Aber da kommt der Fehler:
    "Der Objektverweiß wurde nicht auf eine Objektinstanze festgelegt."

    Wie muss ich das machen das es funktioniert?
    As New List(Of TabPage)...außerdem ist dein Code etwas anders als ich gedacht hätte...
    ca. so:

    VB.NET-Quellcode

    1. Private tabpages As New List(Of TabPage)
    2. 'Verstecken
    3. tabpages.Add(TABPAGE)
    4. TabControl.TabPages.Remove(TABPAGE)
    5. 'Anzeigen
    6. index = WELCHE?
    7. TabControl1.Tabpages.insert(tabpages(index).Index,tabpages(index))
    8. tabpages.RemoveAt(index)

    so bzw. so ähnlich
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---