MessageBox YESNO Abfrage?
-
Hi,
bin da mal wieder auf ein Rätsel gestoßen.
Laut MSDN soll eine MessageBox mit folgendem Code abgefangen werden können. Bei Yes soll ... passieren. Schaun wir uns mal den Code an:
public: void ExitApplication() { // Display a message box asking users if they // want to exit the application. if (MessageBox::Show("Do you want to exit?", "My Application", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == DialogResult::Yes) { Application::Exit(); } }
Zitat von: http://msdn2.microsoft.com/de-de/library/3tt9e94f
Leider funktioniert das nicht. Und auch per Google finde ich nur Themen in Foren in denen es nicht funktioniert.
Habt ihr da vielleicht einen kleinen Tipp wie so etwas klappt?
Ich möchte gerne abfragen ob Yes oder No angeklickt wurde. Jedoch wird die MessageBox von einem DialogFenster aufgerufen in denen Eingaben getätigt werden. Ich hoffe das gibt keine Probleme damit ...Danke im Voraus.
-
Ich hab folgende Lösung für:
System::Windows::Forms::DialogResult result; result = MessageBox::Show("Bist Du 18 Jahre alt?","Frage",MessageBoxButtons::YesNo,MessageBoxIcon::Question); if (result == ::DialogResult::Yes) { MessageBox::Show("OK du bist 18","Info"); } else { MessageBox::Show("Du bist nicht 18?","Info"); }
Gibts dafür nichts einfacheres?
-
Klar
if (MessageBox::Show("Do you want to exit?", "My Application", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == ::DialogResult::Yes)
-
Also bei mir klappt das nicht
Habs auch mit dem Beispiel der MSDN versucht ...
-
WAS klappt nicht? Was kommt für eine Fehlermeldung; was erwartest Du und was geht nicht?
-
Bei mir funzt das auch super.
-
Vermutlich hat er <windows.h> includiert und da muss man *nach* dem includieren ein
#undef MessageBox
machen...
-
Also ich hatte normal mit Windows Forms gearbeitet und beim Compilen gabs nur Fehler ... Also hab ich das Programm umgeschrieben wie oben gezeigt und nun gehts ...
-
Meine Kristallkugel sagt mir, das es dieses Problem war:
::DialogResult::Yes DialogResult::Yes
Das erste ist eine Konstante, das zweite der Wert der aktuellen Instanz der Form. Das ist nämlich der einzige Unterschied zwischen dem "geht" und dem "geht nicht".
(Würden die Leute mal Fehlermeldungen Posten, könnte man auch ohne Kristallkugel arbeiten
-
100 Punkte für die Kristallkugel.
Genau das war das Problem.
Tut mir leid, dass ich den Fehler nicht gepostet hab. Aber hab doch das ganze Probgramm neu Modeliert
-
ahcso und denkt ausserdem daran:
anstatt MessageBox::Show(....
MessageBox::ShowDialog(... zu nutzen wenn ein Feedback von der Box erwartet wird
-
MessageBox implementiert keine ShowDialog Methode
-
Doch tuts, bei selbst erstellten Dialogen, selbst schon verwendet
-
ahcso und denkt ausserdem daran: anstatt MessageBox::Show(.... MessageBox::ShowDialog(... zu nutzen wenn ein Feedback von der Box erwartet wird
Doch tuts, bei selbst erstellten Dialogen, selbst schon verwendet
-
oh da hhab ich mich auf die OpenFileDialog-Klasse bezogen also nicht auf die MessageBox bezogen sondern die anderen Standartdialog-Klassen sorry versehen
-
Hmm bei mir hats erst mit
::System::Windows::Forms::DialogResult::Yes
geklappt
obwohl es eigentlichusing System::Windows::Forms;
hat.
Ich weiß Thema is bissl alt, aber villt hat jemand das selbe problem und freut sich dann das zu finden
-
Hallo Corax_Melancon,
diese Schreibweise...
if (MessageBox::Show("Do you want to exit?","My Application", MessageBoxButtons::YesNo,MessageBoxIcon::Question) == ::DialogResult::Yes) { Application::Exit(); }
funktioniert nur, wenn die Namespace Vereinbarung global (public) gesetzt sind...
#pragma once using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; namespace Msg {
Sollten die Vereinbarungen lokal (private) gesetzt sein...
#pragma once namespace Msg { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing;
Dann funktioniert nur Deine Schreibweise...
::System::Windows::Forms::DialogResult::Yes
Gruß, Doug_HH