Visual Studio 2008 "<<Zurück" und "Weiter>>" Button einrichten



  • Hallo Leute, ich hätte mal eine Frage bezüglich Visual Studio C plusplus.

    Ich bin noch Anfänger und gerade dabei einen <<Zurück und einen Weiter>> Button einzurichten.

    Das Layout ist schon fertig und die Buttons sind auf jeder Seite (insgesamt 11 Seiten) vorhanden.

    Jetzt meine Frage: Der Befehl

    private void button1_Click(object sender, EventArgs e)

    ist schon vorhanden, jetzt suche ich einen Befehl der den button1 , also (<<Zurück und weiter>>) mit einer anderen Seite oder einem anderen Tab verknüpft so dass ich vor und zurück blättern kann.

    Vielen Dank schon mal im Voraus wäre super wenn wir jemand weiterhelfen könnte.
    Mfg Dan90



  • Wie hast du denn die "Seiten" erstellt?
    Verwendest du eine Art StackedWidget oder wie hast du das mit den 11 Seiten realisiert?



  • Kann ich dir leider nicht genau sagen, das Problem ist dass dies mein Vorgänger in der Firma programmiert hat und ich versuche mich zurecht zu finden.

    Das Projekt besteht aus 11 verschiedenen Dateien mit einer .cs-Endung,
    diese besteht jeweils aus 2 Unterpunkten
    mit einer Desing.cs-Datei und einer .resx-Datei

    Sorry dass ich es nicht besser beschreiben kann.



  • Hört sich für mich so an, als hättest du 11 verschiedene Fenster zur Verfügung, die du per Buttons öffnen und schließen möchtest.

    Ein Problem hat sich aber jetzt herauskristallisiert: Du hast .cs Dateien, also ist das C# (.NET), wenn ich mich nicht irre.
    Hier in der MFC (C++) Sparte bist du ergo nicht gut aufgehoben, ich versuch's trotzdem.

    Normalerweise öffnet man ein neues Fenster folgendermaßen:

    private void button1_Click(Object sender, EventArgs e ) 
    {
       Form1 f = new Form1();
       f.show();
    }
    

    Wobei Form1 die Klasse des Fensters ist, welches du öffnen möchtest.



  • Hat funktioniert, vielen Dank 😋



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C# und .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Und direkt ein weiteres Problem 😡

    Es wird ja jedes mal das darauf folgende Fenster geöffnet, das vorherige Fenster bleibt aber auch geöffnet. Da ich aber "durchblättern" will habe ich versucht das Fenster mit dem Befehl:

    Form1 g = new Form1();
    g.Close();

    zu wieder schließen was jedoch leider Funktioniert (Also das eine Fenster öffnet sich und das andere schließt sich gleichzeitig). Hat da vielleicht Jemand nen besseren Ansatz?

    Mfg Dan90



  • Dan90 schrieb:

    Form1 g = new Form1();
    g.Close();

    zu wieder schließen was jedoch leider Funktioniert (Also das eine Fenster öffnet sich und das andere schließt sich gleichzeitig). Hat da vielleicht Jemand nen besseren Ansatz?

    OMG schon wieder so ein Try&Error-Frickler ohne Grundlagenwissen. Warum wirst Du mit einem Projekt betraut, wenn Du garnicht programmieren kannst 😕

    Wenn immer nur genau ein Fenster geöffnet sein soll, merkst Du Dir irgendwo global die Referenz auf das aktuelle Fenster. Damit kannst Du es dann schließen sobald eine andere Form geöffnet werden soll. Wenn die Buttons IN den jeweiligen Forms sind, tut es natürlich auch ein this.Close. Darfst nur nicht die Hauptform schließen. Merkst schon, wird komplizierter, ne?

    Wenn es "dynamischer" werden soll, also manche Forms evtl nur in den Hintergrund verschwinden sollen, wird es komplexer und Du musst Dir eine saubere Fensterverwaltung programmieren.



  • phanzy schrieb:

    private void button1_Click(Object sender, EventArgs e ) 
    {
       Form1 f = new Form1();
       f.show();
    }
    

    Statt f.Show() f.Show(this) oder f.ShowDialog() einsetzen?



  • berniebutt schrieb:

    phanzy schrieb:

    private void button1_Click(Object sender, EventArgs e ) 
    {
       Form1 f = new Form1();
       f.show();
    }
    

    Statt f.Show() f.Show(this) oder f.ShowDialog() einsetzen?

    Was soll das helfen?
    Eine saubere Fensterverwaltung in Winforms ist nicht so einfach, aber natürlich möglich. Mit Frickelei wird das aber nichts.



  • Naja.. Unschön aber klappt:
    In der Ersten Form:

    this.Hide();
    new nächsteForm().ShowDialog();
    this.Close();
    

    Das Bei jeder Form und der Laden läuft. 😉
    Aber ich bin sicher, dass es deutlich saubere Wege gibt.


Anmelden zum Antworten