Laden...

Programm neu starten [eigentlich: neuen Durchlauf beginnen]

Erstellt von Hobby Programmierer vor 12 Jahren Letzter Beitrag vor 12 Jahren 5.140 Views
Thema geschlossen
H
Hobby Programmierer Themenstarter:in
18 Beiträge seit 2011
vor 12 Jahren
Programm neu starten [eigentlich: neuen Durchlauf beginnen]

Hi,

ich habe ein Programm, an dem ich an einer bestimmten Stelle einen Neustart ausführen möchte. Mit folgendem Code versuche ich dies:


DialogResult dr = MessageBox.Show("Das Spiel ging unentschieden aus. Möchten Sie erneut spielen?", "Unentschieden", MessageBoxButtons.YesNo);
            if (dr == DialogResult.Yes)
                Application.Restart();
            else
                Application.Exit();

Egal, ob ich in der MessageBox auf Ja oder Nein klicke, wird die Form gleich 8 mal neu geöffnet und die "alte" Form wird geschlossen.

An was liegt es? An anderen Stellen im Programm mache ich mit dem gleichen Code einen Neustart und es funktioniert wie es soll.

Vielen Dank im Voraus

_
48 Beiträge seit 2011
vor 12 Jahren

Hallo,

da ist nichts zu erkennen, weshalb das Programm 8 mal neustartet. Hast du das vielleicht in einer Schleife drin und versehentliche eine Klammer falsch gesetzt? Kannst du mal mehr Code posten?

Gruß
Bugrick

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo Hobby Programmierer,

auch als Hobbyprogrammierer solltest du versuchen, sauberen Code zu schreiben. Für ein weiteres Spiel solltest du auf keinen Fall das ganze Programm (den Prozess) neustarten. Application.Restart ist für andere Zwecke gedacht. Setze einfach alle relevanten Variablen des Spiels auf die Startwerte zurück. Da du am Beginn des Spiels die Variablen sowieso auf die richtigen Startwerte setzen musst, pack das in eine Methode. Diese kannst du dann beim Programmstart, also auch im Yes-Teil deiner Abfrage aufrufen.

Wenn du wirklich das bestehende Form schließen und ein neues Form öffnen willst, reicht eben genau das (Close + new Form/Show). Du musst nur aufpassen, dass das Schließen des Forms nicht zum Beenden der Anwendung führt. Siehe dazu Schließen eines Forms, ohne die komplette Anwendung zu schließen [war: Form- und Codehandling].

Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

herbivore

Thema geschlossen