VB2015 - TabControl aus TabPage, bzw. TabControl einfach in FORM1 verschieben? Hilfe

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

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

    VB2015 - TabControl aus TabPage, bzw. TabControl einfach in FORM1 verschieben? Hilfe

    Hallo,

    da habe ich über 15 Jahre nicht mehr programmiert und bastele aber ein kleines Toll zum starten all meiner alten MS-DOS Programme. Das Ganze Ding verwaltet Screenshots, Konfigurationen, übergibt das an DosBOX, verwaltet Anleitungen, PDF, Hilfstexte. Das ganze funktioniert also als (m)eine kleine Frontend für DOS Box und verwaltet alle meine alten Libelingsspiele, CD-ROM Images, Anleitungen und und und in einer Oberfläche. Ich klicke ein Button an, mein programm erkennt, welche Anleitungen, Zubehörtexte etc. bereitliegen, zeigt diese zur möglichen Betrachtung an, erlaubt das Spiel zu starten, etc.

    Dabei nutze ich ein paar Verzeichnisse. Fehlt eines dieser Verzeichnisse, so wird z.B. Das TabControlNAME nicht angezeigt. Fehlt also z.B. das Verzeichnis "LAUFWERK_ACTION", in dem alle Actionspiele liegen, erkennt das mein programm und unterbindet die Anzeige des "TabControlACSTION", welches in der Grafik 1 hier z. B. Links oben zu sehen ist. Fehlen andere Verzeichnisse und ist z.B. Nur Action vorhanden, wird das ganze sogar zentriert.

    BEISPIEL der Oberfläche:


    Beispiel des Verzeichnisses:


    Soweit funktioniert das alles. Um z.B. nur alle Flugsimulationen anzeigen und spielen zu lassen, kann ich z.B. nur den Ordner "LAUFWERK_FLIGHTSIM" halten und alle anderen löschen.

    Ich möchte aber noch einen Schritt weitergehen. So möchte ich z.B. alle Ultima Teile 1-8, Underworld1+2 und Pagan, jetzt im Laufwerk "LAUFWERK_ULTIMA" enthalten nutzen. Dazu soll NUR die "GroupBoxULTIMA" in Form1, also quasi dem Hauptbildschirm angezeigt werden. Dazu muss aber "GroupBoxULTIMA", die sich in dem Tab "TabPage5" des Containers / Tabcontrol "TabControlULTIMA" befindet eben in Form1 verschoben werden. Auch das sollte in der Grafik 1 ersichtlich sein:

    Es soll also die in einem Tab enthaltene Groupbox losgelöst und NUR angezeigt werden. (Das Ausblenden der Tabs / TabControls mit .visible ist kein Problem).

    Hier ein kleiner Ausschnitt, wie ich z.B. bisher für Verzeichnisse und Inhalte vorgehe:
    '-----------------------------------------------------
    If Not My.Computer.FileSystem.DirectoryExists("LAUFWERK_WING") Then
    TabControlWING.Visible = False
    End If
    If Not My.Computer.FileSystem.DirectoryExists("LAUFWERK_ULTIMA") Then
    GroupBoxULTIMA.Visible = False
    End If
    '-----------------------------------------------------------------------
    If (My.Computer.FileSystem.DirectoryExists("LAUFWERK_ULTIMA")) And (Not My.Computer.FileSystem.DirectoryExists("LAUFWERK_ROLEPLAY")) Then
    GroupBoxULTIMA.Location = New Point(340, 278)
    End If

    Nur als Beispiel also. Ich muss also irgendwie die GroupBoxULTIMA loslösen und in Form1, bzw. alleine anzeigen lassen.

    Funktioniert das, kann ich z.B. nur das Ultima-Verzeichnis behalten und habe kompakt und klein meine "Ultima-Collection" zusätzlich neben dem ganzen Kram.

    Ich hoffe, Ihr versteht, was und wie...

    So sieht das ganze jetzt testweise aus:


    Gruss G.
    Jou.
    @gume1970 Vielleicht solltest Du Dir zunächst klar machen, wie Formen und Dialoge instanziiert und aufgerufen werden.
    Dann wirst Du sehen, das das Snippet vom @ErfinderDesRades alles snthält, was Du brauchst, außer dem Pointer auf eine Instanz selbst: Me (in C# this).

    VB.NET-Quellcode

    1. Groupbox1.Parent = Me
    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!
    Hallo,

    ich hatte das Ganze soweit kurz im netz überflogen. Parant.Me hat nicht einwandfrei funktioniert. Es war auch mein erster Ansatz. Inzwischen habe ich es so gelöst, das ich die Hauptseite der "Rahmen" bestehen lassen, andere Tabs / TabPages einfach mit "remove" entferne und innerhalb dort die GroupBox in das erste Tab schiebe. Dann nur noch den TabControl mittig verschieben und es funktioniert.

    Vielen Dank für Zeit und Mühe, gelöst. War die letzte Kleinigkeit. Alles andere im zunehmend kompliziert werdenden Code habe ich hinbekommen.

    GELÖST, Danke Euch.

    R.