Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » Sicherheitsabfrage beim Schließen in Windows Forms

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.08.2018, 20:05 Uhr
MarkusW1985



Hallo,

die Frage ist vielleicht einfach/blöd, aber ich bin noch relativ neu in der C++/CLI Welt und kenne mich noch nicht so gut aus.

Ich habe für ein Projekt ein kleines Programm mit einer Windows Forms GUI geschrieben und möchte nun gerne, dass beim Klick auf das übliche "X" in der oberen rechten Ecke nicht sofort das Fenster geschlossen wird, sondern eine Sicherheitabfrage nach dem Motto "Wollen Sie das Fenster wirklich schließen?" erscheint.

Hat jemand einen Idee für mich, wie man das umsetzen kann? Über Fenster_FormClosing? Geht das mit einer MessageBox? Bin ein wenig überfordert.

Vielen Dank schonmal für eure Hilfe!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.08.2018, 00:18 Uhr
ao

(Operator)



Zitat von MarkusW1985:
Über Fenster_FormClosing? Geht das mit einer MessageBox?

Ja und ja, würde ich sagen.

Im FormClosing Messagebox.Show mit zwei Buttons (Close und Cancel) aufrufen. Nach dem Schließen der Messagebox den Rückgabewert von Show prüfen, und wenn Cancel gedrückt wurde, im FormClosingEventArgs das Feld cancel auf true setzen. Das müsste das Schließen des Hauptfensters verhindern.

Wenn in der Messagebox Close gedrückt wurde, den Wert von cancel unverändert lassen, und das Hauptfenster geht zu.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.08.2018, 20:55 Uhr
MarkusW1985



Erstmal vielen Dank für die Antwort, aber irgendwie kriege ich es noch nicht ganz hin. Bei mir sieht es bisher so aus:


Code:
private: System::Void Startseite_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
    if (MessageBox::Show("Wollen Sie dieses Fenster wirklich schliessen?", "Fenster schliessen?", MessageBoxButtons::OKCancel,
        MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Cancel) {
        e->Cancel = true;
    }
}



Was wäre da falsch? Mein Fenster schließt sich weiterhin einfach ohne Abfrage.

Danke und viele Grüße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.08.2018, 15:23 Uhr
ao

(Operator)


Keine Ahnung, so hätte ich es auch gemacht.

Ich hab hier kein Windows und kann es nicht ausprobieren. Google das Problem mal, und achte besonders auf Treffer bei stackoverflow.com. Die Artikel da sind oft sehr gut.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.08.2018, 21:41 Uhr
mmc20
puss in boots


Hallo,
ganz genau so sollte es funktionieren.
Teste doch bitte mal mit dem Debugger ob deine "Startseite_FormClosing(...)" überhaupt aufgerufen wird, evtl ist die funktion nicht richtig "registriert".

Beste Grüße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: