Announcement

Collapse
No announcement yet.

TabControl TabPage Visibility

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TabControl TabPage Visibility

    hallo und guten morgen allerseits,

    hab jetzt schon ne weile gesucht und nichts passendes gefunden.
    zur situation:
    -habe aus platzgründen auf ein TabControl zurückgegriffen
    -TabPage1 enthält stamminformationen zu einer person
    -TabPage2 soll entsprechende Ansprechpartner dieser person behandeln
    -TabPage3 soll weitere personenrelevante informationen behandeln

    mein problem:
    -die TabPages 2 + 3 sollen unsichtbar bleiben, bis die stammdaten - nach auswahl aus einem datagrid - auf der TabPage1 angezeigt werden.
    -es gibt offensichtlich keine eigenschaft VISIBLE für eine einzelne TabPage !

    hat viell. jemand einen tip für mich ???

  • #2
    Hallo,

    wirf mal einen Blick in die Doku zur TabPage..::.Visible-Eigenschaft. Da steht:
    Diese API unterstützt die .NET Framework-Infrastruktur und ist nicht für die direkte Verwendung in Code bestimmt.

    Dieser Member hat für das genannte Steuerelement keine Bedeutung.
    Weiters steht:
    Um eine Registerkarte in einem TabControl auszublenden, müssen Sie es aus der TabPages-Auflistung des Steuerelements entfernen.
    Das sollte deine Frage beantworten.


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      hallo Gü
      danke für deine zitate. die frage beantwortet es sicherlich.
      in sachen umsetzung muss ich dann mal schauen - als vb.net anfänger.

      würde folgender ansatz aussicht auf erfolg versprechen?
      - aus dem definierten TabControl beim laden zunächst die TabPages 1+2 an ein deklariertes, temporäres TabControl übergeben
      - dann bei bedarf diese beiden wieder per TabControl.Add anfügen

      was meinst du?

      gruss
      ro
      Zuletzt editiert von gfoidl; 18.08.2009, 13:40. Reason: Zitat der ganzen vorigen Antwort entfernt.

      Comment


      • #4
        würde folgender ansatz aussicht auf erfolg versprechen?
        - aus dem definierten TabControl beim laden zunächst die TabPages 1+2 an ein deklariertes, temporäres TabControl übergeben
        - dann bei bedarf diese beiden wieder per TabControl.Add anfügen
        Der erste Schritt ist nicht notwendig, der zweite ist korrekt.

        Ansatzweise würde ich das so lösen indem ich die nicht angezeigten TabPages in einer Liste speichere:
        [highlight=vbnet]
        Imports System
        Imports System.Collections.Generic
        Imports System.Windows.Forms

        Namespace WindowsFormsApplication1
        Public Partial Class Form1
        Inherits Form
        ' Liste zum Zwischenspeichern der TabPages:
        Private _tabPagesNotShow As New List(Of TabPage)()

        Public Sub New()
        InitializeComponent()

        ' TabPages speichern (nur die die nicht angezeigt werden):
        _tabPagesNotShow.Add(tabPage2)
        _tabPagesNotShow.Add(tabPage3)

        ' Nicht angezeigte TabPages entfernen:
        tabControl1.Controls.Remove(tabPage2)
        tabControl1.Controls.Remove(tabPage3)
        End Sub

        Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
        ' Zeigt alle TabPages an:
        For Each page As TabPage In _tabPagesNotShow
        tabControl1.Controls.Add(page)
        Next
        End Sub
        End Class
        End Namespace
        [/highlight]


        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          VIELEN DANK !!!
          das werde ich mal so ausprobieren. gebe natürlich rückmeldung.

          bis dahin erstmal.
          Zuletzt editiert von gfoidl; 18.08.2009, 13:41. Reason: Zitat der ganzen vorigen Antwort entfernt.

          Comment


          • #6
            hallo Gü,

            wiedermal hat dein tip die lösung gebracht.
            funktioniert bestens !!

            vielen dank !!!

            Comment


            • #7
              hallo zusammen,
              muss dieses thema nochmal reaktivieren.

              besteht die möglichkeit, nachdem ich einzelne TabPages ausgeblendet habe (siehe weiter oben), den eigentlichen "karteireiter" (wenn nur noch EINE TabPage zur Anzeige kommt) auch auszublenden bzw. auf unsichtbar zu setzen?

              Comment


              • #8
                Hallo,

                ohne reichliche Überlegung würde ich das so lösen:

                Die Inhalte der TabPages als UserControl darstellen. Für den "normalen" Betrieb ändert sich dabei nichts.

                Wenn der Fall deiner letzten Frage eintritt das TabControl von der Form entfernen und das UserControl das noch übrig geblieben ist direkt auf der Form an der Stelle des TabControls anzeigen.


                mfG Gü
                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                Comment


                • #9
                  hallo gü,
                  danke für den tip. mit usercontrols habe ich bislang noch nicht gearbeitet.
                  habe bislang mit zwei verschiedenen panels gearbeitet, die ich je nach bedarf auf VISIBLE gesetzt habe. diese lösung ist aber im rahmen der entwicklungsarbeit über visual studio nicht gerade einfach, weil die betr. panels ja übereinander liegen. da wollte ich das halt über das TC versuchen.

                  gruss, R.
                  Zuletzt editiert von gfoidl; 27.10.2009, 15:18. Reason: Fullquote entfernt

                  Comment


                  • #10
                    Hallo,

                    mit usercontrols habe ich bislang noch nicht gearbeitet.
                    Das ist nicht anders wie Controls auf die Form ziehen
                    Kompilieren und das UC steht wie ein normales Control im Designer zur Verfügung. Über Eigenschaften und Methoden kannst du dann auf Steuerelemente des UC zugreifen/ändern.


                    mfG Gü
                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                    Comment

                    Working...
                    X