TabControl, Objekte mehrfach anzeigen??

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Morrison.

    TabControl, Objekte mehrfach anzeigen??

    Hallo,

    ich habe auf meiner Form ein TabControl mit mehreren Reitern.
    Nun möchte ich auf einigen Reitern Objekte mehrfach anzeigen lassen.

    Also auf Tab1 hab ich z.B. ein DataGridView und genau dieses möchte ich auch auf Tab3 angezeigt bekommen?

    Geht es iwie ohne das ich zwei verschiedene GridViews erstelle und beide mit den selben Daten fülle??
    Mir würde da erstmal nur einfallen, das Umschalten der Tabs abzufangen, und dann "Per Hand"
    das ganze umzupacken,
    also etwa in der Art

    Quellcode

    1. if AufTab1Geklickt then
    2. dgv.parent = dasvomTab1
    3. dev.Position = evtl. neue Pos
    4. elseif aufTab3Geklickt
    5. dgv.parant = dasvonTab3
    6. dgv.Location = evtl. andere Pos
    7. end if


    Edit:
    Richtiger wäre, nicht wenn Tab1 oder 3 "geklickt", sondern wenn "aktiviert", damit auch die Tab-Taste zu Ihrem Recht kommt, oder das Ganze per Code umgeschaltet wird.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RoulettePilot“ ()

    Morrison schrieb:

    ausführlicher
    Setze beim Umschsalten des Tabs das Parent des Controls, das auf diesem Tab sichtbar sein soll aber nicht ist, auf die aktuelle TabPage.
    Sieh Dir den Code dazu in der entsprechenden Prozedur InitializeComponents() im Designercode an.
    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!
    OK, thx! :)

    Habs jetzt so, und das funzt soweit!:
    Spoiler anzeigen

    Quellcode

    1. Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged
    2. If SUComplete = 0 Or eFehler = 1 Then
    3. TabControl1.SelectTab(TabPage2)
    4. End If
    5. If TabControl1.SelectedTab Is TabPage3 Then
    6. Me.SplitContainer4.Panel2.Controls.Add(Me.DataGridView1)
    7. ElseIf TabControl1.SelectedTab Is TabPage4 Then
    8. Me.SplitContainer3.Panel1.Controls.Add(Me.DataGridView1)
    9. End If
    10. End Sub