Neue Objekte in gleiche Form

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Neue Objekte in gleiche Form

    Hallo zusammen,

    ich habe gerade angefangen ein Programm zu schreiben, welches Daten wiedergeben soll.
    Mein erstes Problem besteht schon darin, dass ich nicht weiß wir ich sozusagen 2 Formen in eine packe.
    Jedes Programm läuft ja einmal in einem Fenster und in diesem Fenster ändern sich durch klicken auf Buttons die Objekte, Bilder, etc.
    Habe es bisher nur geschafft, dass ich mit Me.Hide, ???.Show die Ansicht ändere.
    Das ist jedoch nicht so das wahre, weil sich dann ja jedesmal ein neues Fenster öffnet, anstatt ein neuer Inhalt.

    Die Suche hat leider bisher noch nicht geholfen.

    Mfg
    Marvin
    deine Beschreibung ist bisserl wirr, aber inne Datenbänkerei gibts den sog. "DetailView", bei dem alle angebundenen Controls autom. die neuen Werte übernehmen, sobald ein annerer Datensatz angewählt wird.

    vlt. kannsteja auf [VB 2008] DBExtensions die Sample-Solutions durchgucken, ob da was dabei ist, was funktional deinen Vorstellungen entspricht.
    Nein, dass ich eine Datenbank mache, hat nichts mit dem Problem zutun.

    Ich erläutere das nochmal:

    Wie es jetzt ist:
    Programm startet! Form1 öffnet sich.
    In Form1 ist nur ein Button.
    Wenn man auf diesen Button klickt, erscheint neben dem Fenster Form1 noch das Fenster Form2!
    In Form2 steht dann zum Beispiel "Sie haben auf den Button geklickt!".

    Wie es sein soll:
    Programm startet! Form1 öffnet sich.
    In Form1 ist wieder nur ein Button.
    Wenn man auf diesen Button klickt, verschwindet der Button, aber es erscheint der Text "Sie haben auf den Button geklickt!".

    Es geschieht als alles in einem Fenster.
    Du kannst das ganze über Panels lösen.
    Mache 2 Panels, in die Du deine Daten Packst.

    Bsp: Panel1 ist leer, Panel 2 hat den Text, "Sie haben auf den Button gedrückt"

    Wenn du dann auf den Button (der in keinem Panel ist drückst, startest du dessen Event mit dem Code:
    Panel 1.Visible = False
    Panel2.Visible = True

    So hast du mehrere Ansichten in einer Form

    Denis_Class schrieb:

    Panels, in die Du deine Daten Packst
    :D :D gibsn sowas? :D :D

    Ich persönlich find ja son Panelgewusel alleräußerst unübersichtlich und schwer wartbar. Denn lieber nen TabControl und zur Laufzeit die Reiters ausblenden (Hab ich von EDR gelernt ;) ).
    Wobei der vom TE gewünschte Aufbau auch mit Label und Button und jeweils visible = true/false machbar sein dürfte.

    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Ich denke für seinen Gebrauch geht das. Muss ich dir aber beipflichten. Bei einem meiner ersten "Projekte" Hatte ich 4 Panel übereinanderliegen, mit ähnlichem Konstrukt, aber verschiedenen Speicherpfaden deren Inhalte (Text und ComboBoxen) Und ja, zu warten ist das absoluter Miste, da du erstmal suchst und dann ewig dran rum basteln musst!


    Edit by LaMa5:
    - Das vollständige Zitieren von Beiträgen ('Fullquotes'), die direkt über dem eigenen stehen, ist völlig unnötig und daher nicht erlaubt. (Boardregeln §4.1f)
    --> Vollzitat entfernt.

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

    Darum bin ich dafür, einem Anfänger (@TE, darf ich dich so bezeichnen) gleich was sauberereres aufzuzeigen, an statt ihn über irgendwelche Holzwege Mist angewöhnen zu lassen.
    Auch bezog sich mein Post mehr auf die Formulierung, Daten auf ein Panel zu packen. Ein Panel beinhaltet nomalerweise Steuerelemente. Solche Formulierungen führen dazu, das man bei manchen Fragestellungen nicht mehr durchblickt.

    Nixvürungut

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Sehr gut.
    Also das funktioniert soweit.

    Aber ich möchte gerne einen "Zurück in Hauptmenü" Button machen.
    Damit ich nicht für jeden Panel einen schreiben muss, wollte ich den verallgemeinern.

    Gibt es einen Befehl der alle Panel unsichtbar macht?
    Sowas wie: Panel1.Visible = False nur dann für alle und nicht nur für Panel1.

    MfG
    Gibts kein befehl, selber schreiben.
    Mit For Each schleife alle Panels durchlaufen. In schleife prüfen ob Eigenschaft von Panel"Visible" True.
    Wenn True dann auf False setzen.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „SystemUnknow“ ()

    So habe jetzt ein wenig rumprobiert.
    Meiner Meinung nach die übersichtlichste Möglichkeit, ist doch mit Formen zu arbeiten.

    Meine Idee eine Hauptform, die immer besteht.
    Durch Buttonklick öffnet sich eine weiter Form, die so positioniert ist, dass es so aussieht, als wär sie in der Hauptform drin.

    Meine jetzige Frage:
    Wie kann ich die Formen verbinden. Also dass die zweite vom an der Hauptform verankert ist.
    Z.B sollte beim minimieren der Hauptform auch die 2. Form mit minimiert werden. Oder wenn ich die Hauptform bewege bewegt sich genauso auch die 2. Form.
    Logischerweise muss die 2. Form über der Hauptform liegen.

    >>1. Formen verbinden
    >>2. Lage der Form (Vordergrund/Hintergrund) festlegen


    Bitte nur kurz,knapp und verständlich zu 1. und 2. antworten.

    Mfg
    Such mal nach MDI.
    Kannst auch mal auf Projekt >> Element hinzufügen >> Übergeordnetes MDI-Formular klicken. Es wird eine übergeordnete Form zu deinem Projekt hinzugefügt inkl. Code für Childforms usw.
    Damit kannste dann ma rumspeilen und testen

    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Danke dir.
    Das mit den TabControl funktioniert gut.

    Doch habe dazu noch zwei fragen.
    1: Kann ich irgendwie einen Menu- bzw.- Statusstrip hionzufügen? Weil der verdeckt dann blöderweise etwas vom Inhalt, weil der ja auf Dock:Fill steht.

    2: Wenn ich einen neuen Tab erstelle, wie hast du es gemacht, dass ich doch diese Listbox mit dem TabControl verkknüpfen kann?

    MfG