Zwei Fragen hier, hoffe, dass das in Ordnung ist.
Zuerst und hauptsächlich versuche ich, den Benutzer beim Beenden meiner Anwendung aufzufordern, ob er wirklich beenden möchte oder nicht. Mein Code ist wie folgt:
%Vor% Nach MSDN
sollte ich MessageBoxResult mBoxResult
anstatt DialogResult mBoxResult
verwenden.
Ich verwende .NET Framework 3.5
. Ich lese hier , dass pre-3.0
DialogResult
verwenden sollte, aber wenn ich% verwende co_de%, sollte nicht 3.5
funktionieren?
Wenn ich versuche, es anzurufen, bekomme ich
Der Typ oder Namespace name
MessageBoxResult
konnte nicht gefunden werden (sind Sie vermissen eine Using-Direktive oder eine Assembly-Referenz?).
Allerdings funktioniert es gut, wenn ich DialogResult verwende. Warum ist das?
Meine zweite Frage betrifft diesen Code:
%Vor% Wenn jemand die Schaltfläche MessageBoxResult
im Dialog anklickt, wäre es dann richtig, außer der Pause etwas hineinzuschieben? Oder funktioniert alles ohne es?
DialogResult ist für WinForms. MessageBoxResult ist für SilverLight.
Nur die break
-Anweisung ist für den Fall No
in Ordnung. Aber die Verwendung einer switch-Anweisung ist hier zu viel. if (response == yes) Close();
würde ausreichen.
Beachten Sie jedoch, dass dies nicht der ideale Weg ist, um das zu tun, was Sie wollen. Was passiert, wenn der Benutzer auf die Schließen-Schaltfläche am Fensterrand klickt oder ALT + F4 drückt? Stattdessen sollten Sie das FormClosing-Ereignis behandeln:
%Vor% Wenn Sie e.Cancel
auf true
setzen, brechen Sie das Schließen des Formulars ab. Indem Sie nichts tun, erlauben Sie das Schließen des Formulars.
Wie Sie sehen können, sind die Namespaces unterschiedlich: System.Windows.Forms
(Winforms) vs System.Windows
(WPF).