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
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
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