C# Ja/Nein Abfrage zur Programmbeendigung?
Ich möchte am Ende meines Codes die Frage stellen, ob das Programm nun geschlossen werden soll, oder ob das Programm weiter ausgeführt(/Neugestartet - Kommt aufs gleiche raus) werden soll. Wenn in dem aufgehenden Fenster dann Ja ausgewählt wird, soll das Programm anschließend geschlossen werden und wenn Nein ausgewählt wird, soll das Programm den Code wiederholen(da habe ich eine Do-While-Schleife).
DialogResult result = MessageBox.Show("Möchtest du das Programm beenden?","Caption", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
Damit wird das Ja/Nein Abfrage Fenster geöffnet.
(Bisher habe ich in den Codes immer folgendes Benutzt
do
{ [...]
str_ende = (Console.ReadLine()).ToUpper();
} while (!str_ende.Equals("E"));
1 Antwort
Na dann nutze doch das Ergebnis, welches du von der MessageBox zurückbekommst. DialogResult ist ein Enum.
DialogResult result;
do
{
result = MessageBox.Show( // ...
}
while (result == DialogResult.No);
Sofern nach der Schleife nichts mehr weiterkommt, brauchst du die Anwendung nicht explizit beenden. Andernfalls verwende:
System.Windows.Forms.Application.Exit();
für deine Windows Forms-App.
Wenn in dem aufgehenden Fenster dann Nein ausgewählt wird, soll das Programm anschließend geschlossen werden (...)
Das passt nicht mit deiner Frage überein, die du dem Nutzer stellst. Daher habe ich im oberen Code auch einen Vergleich mit No vorgenommen.
Enum: https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/enumeration-types
1) Habe ich inzwischen schon korrigiert. Die Variable result braucht einen erweiterten Gültigkeitsbereit - muss also außerhalb des do-Blocks bekannt sein.
2) Den kannst du selbst einbauen. Wie du die Anwendung beendest und wie du den Enum-Typ für einen Vergleich einsetzen kannst, habe ich gezeigt.
hab ja und nein oben versehentlich vertauscht...
was ist ein Enum?