Wie erstelle ich eine Anwendung mit mehreren Oberflächen?

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

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Wie erstelle ich eine Anwendung mit mehreren Oberflächen?

    Hallo,
    als Neuling in VB.net arbeite ich mich langsam voran....
    Ich hoffe ich habe das korrekte Forum gewählt.

    Ich habe nach einigen Tutorials und vielen Übungen meine erste eigene Anwendung mit Visual Studio 2017 erstellt, die auch soweit funktioniert.
    Ich habe eine Anwendung erstellt, die nach einem Countdown einen Alarm Sound abspielt.

    Jetzt würde ich gerne eine Einstellungsseite ergänzen, in der ich die Zeit für den Countdown festlegen kann.

    Leider hänge ich hier, und finde bis jetzt keine sinnvoll erscheinende Lösung.

    Daher meine Frage, wie erstellt man sinnvoller weise innerhalb einer Anwendung mehrere Unterseiten?

    Macht man das mit Registerkarten?
    Oder mit mehreren FormX, die sich jeweils überlagern?
    Oder ganz anders....?

    Was ich bis jetzt hinbekommen habe, ist:
    In Form1 habe ich den Button der den Alarm startet, runterzählt und bei erreichen von 0 einen Sound abspielt.
    Form1 hat einen MenuStrip mit einem MenuItem (Einstellungen)
    Bei Click auf Einstellungen öffnet sich Form2 über Form1
    In Form2 habe ich 1 Textbox für den Countdown Wert, der in Form1 verwendet werden soll.

    Wie löst man das korrekt oder professionell?

    Ich würde mich freuen wenn ihr mir einen Hinweis auf ein Tutorial oder den Fachbegriff dafür geben könntet, dann kann ich mich damit weiter beschäftigen.

    Danke!
    Hey,

    du kannst zB, was sehr leicht ist, die sog. TabControls benutzen (diese findest du links in deiner Toolbox).

    Später, wenn du fortgeschrittener bist, kannst du mit mehreren Formen, welche du während der Laufzeit erstellst arbeiten. Was aber letztendlich die Lösung ist: Du erstellst zB die Controls während der Laufzeit. Jenachdem was du gerade benötigst (Geht auch alternativ mit Panels im Designer).

    Aber warum eigentlich so? Du kannst auch einfach mehrere Formen im Designer erstellen.

    LG
    Bitte benutze OPTION STRICT ON.
    Und optional OPTION EXPLICIT ON.
    Hier ein CODE-CONVERTER.

    Suchanfragen-Ansatz für GOOGLE.
    Prüfe deinen Beitrag in einer RECHTSCHREIBPRÜFUNG.

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

    Also für Einstellungen ziehe ich ein weiteres Form vor.

    Falls du dich für ein Form entscheidest, schau auch mal hier rein, da lernst du gleich wie man die richtig benutzt.
    Dialoge: Instanziierung von Forms und Aufruf von Dialogen
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin
    @benk Willkommen im Forum. :thumbup:
    Ich verbinde mal beide Posts:
    Mach Dir einen Settings-Dialog, den solltest Du modal aufrufen (.ShowDialog()).
    Auf den ziehst Du Dir ein TabControl und kannst dort Deine Settings wundervoll gruppieren.
    Mach ich auch immer so.
    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!
    Schließe mich @RodFromGermany an. Mach ich auch immer so.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Was mir noch eingefallen ist: Du könntest WPF nutzen. Dort kannst du die Form-Overlays separat designen und mittels Animation (optional) auf die Form bewegen. Hat den Vorteil, dass es sehr performant ist und keine Bugs aufweist (außer man arbeitet mit Semitransparenz).

    LG
    Bitte benutze OPTION STRICT ON.
    Und optional OPTION EXPLICIT ON.
    Hier ein CODE-CONVERTER.

    Suchanfragen-Ansatz für GOOGLE.
    Prüfe deinen Beitrag in einer RECHTSCHREIBPRÜFUNG.

    Danke für Eure Vorschläge - das hat mich schon ein Stück weiter gebracht.

    Derzeit hab ich als Lösung eine weitere Form benutzt (und zum laufen gebracht...)

    Den Vorschlag mit dem modalen Dialog und mit WPF hab ich mir auf die 2do Liste zum üben gesetzt!

    benk schrieb:

    modalen Dialog
    hat in diesem Sinne nix mit WPF zu tun, sondern mit

    benk schrieb:

    und zum laufen gebracht...
    Wie das mit den modalen und nicht-modalen Dialogen funktioniert, gugst Du hier: Dialoge: Instanziierung von Forms und Aufruf von Dialogen
    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!
    Ich bin gerade noch über ein anderes Problem "gestolpert"...

    Ich habe jetzt Form1 und Form2

    In Form2 schreibe ich ein paar Einstellungen in My.Settings.xy
    Ich schreibe die Settings beim schliessen, und beim klicken auf einen Button speichern.

    Diese Einstellungen lese ich in Form1 ein, allerdings klappt das nur beim Starten des Programms. Wenn ich also Form2 schließe, werden die geänderten Settings zwar gespeichert, aber in Form1 nicht erneut eingelesen oder aktualisiert.

    Kann ich beim schließen von Form2 Form1 aktualisieren oder neuladen? In Form1 gibt es ja ein Form1_load, das beim starten des Programms auch funktioniert, aber das kann ich aus Form2 nicht ansprechen.
    @benk Neu laden musst Du die Settings nicht, die sind ja neu.
    Du musst sie lediglich "anwenden", also alles, was Settings benötigt, erneut anzeigen bzw. ausführen.
    Mach Dir dazu eine Prozedur ApplySettings() in die Form1.
    Wenn Du Form2 modal aufrufst, rufst Du nach frm2.ShowDialog() direkt ApplySettings() auf und feddich.
    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!