Wie kann ich in C# bestimmen, was passiert, wenn ich den Close-Button drücke?

DevFGE  16.09.2020, 13:19

Windows Form C# Projekt?

AllesKaese3 
Beitragsersteller
 16.09.2020, 13:20

Sorry, hab vergessen das hinzuschreiben, ist aber eine WPF Anwendung


3 Antworten

Du kannst ein Event hinzufügen, wenn dein Fenster geschlossen wird. Da gibt es 2 Events, einmal vor dem Schließen des Fensters und einmal wenn es schon geschlossen ist.
Das Erstere kannst du ganz einfach abbrechen, dann schließt sich das Fenster nicht.

Beispiel:

XAML:

<Window ... Closing="Window_Closing">

CS:

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
  {
    var res = MessageBox.Show("Soll das Fenster wirklich geeschlossen werden?", "Achtung", MessageBoxButton.YesNo);

    if (res != MessageBoxResult.Yes)
    {
      e.Cancel = true;
    }
  }
Woher ich das weiß:Berufserfahrung – Anwendungsentwickler (vorwiegend .NET)

AllesKaese3 
Beitragsersteller
 16.09.2020, 13:26

Oh danke

0

Du gehst in dein Window in der Grafik-Editoransicht, klickst auf den Titel.

Unten rechts in den Eigenschaften auf den Blitz (für Events) und dann entweder bei "Closed" oder "Closing" ein Doppelklick.

Closed wird ausgeführt, wenn das Fenster geschlossen ist.

Closing wird ausgeführt, wenn du den Knopf drückst, bevor das Fenster geschlossen wird.

Dann hast du beispielsweise solch einen Quellcode:

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {

        }

das müsste ein event management sein und entsprechend in der event function z.b. ein wert setzen und dann an anderer stelle prüfen ob der wert gesetezt wurde . .