Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Window mit dem 'X' Symbol schließen
der-basti
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

Window mit dem 'X' Symbol schließen

beantworten | zitieren | melden

Hi @ all,

leider habe ich über die sufu hier nichts gefunden, was mir so wirklich weiter heflen konnte.
Und zwar möchte ich noch eine (oderer halt mehrere) Anweisungen ausführen, wenn das Form / Window / Fenster über den 'X' Button oben rechts geschlossen wird. Ausblenden wollte ich es eigentlich nicht.


// deaktiviert die 3 ^>
this.ControlBox = false;
// window größe lässt sich nicht mehr ändern
this.FormBorderStyle = FormBorderStyle.FixedSingle;

Danke im voraus für hilfreiche Posts
MfG
private Nachricht | Beiträge des Benutzers
regen
myCSharp.de - Member



Dabei seit:
Beiträge: 494

beantworten | zitieren | melden

Schau dir mal das FormClosing oder FormClosed Event an.
private Nachricht | Beiträge des Benutzers
der-basti
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

beantworten | zitieren | melden

ah, Danke regen! Funktioniert soweit,
jedoch führt er mir die sache nun zwei mal aus.


        private void closeWindow()
        {
                MessageBox.Show("lala...");
                Application.Exit();
        }

        private void beendenToolStripMenuItem_Click(object sender, EventArgs e)
        {
            closeWindow();
        }

        protected override void OnFormClosing(FormClosingEventArgs e)
        {
            closeWindow();
        }
private Nachricht | Beiträge des Benutzers
Vassili
myCSharp.de - Member

Avatar #avatar-2291.jpg


Dabei seit:
Beiträge: 187
Herkunft: Essen

beantworten | zitieren | melden

ist doch klar, warum.

klickst du auf dein menuitem, läuft der in die closewindow. via application.exit() gehts wieder in die onformclosing und wieder weiter in die closewindow und nochmal zur application.exit()
private Nachricht | Beiträge des Benutzers
der-basti
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

beantworten | zitieren | melden

hmm...
aber irgendwie bekomme ich es nicht hin
kann mir jemand mit code snippes auf die sprünge helfen?
private Nachricht | Beiträge des Benutzers
Vassili
myCSharp.de - Member

Avatar #avatar-2291.jpg


Dabei seit:
Beiträge: 187
Herkunft: Essen

beantworten | zitieren | melden

Füg zum Event 'FormClosing' eine Methode hinzu. Diese sollte sich demnach darum kümmern.

Via MenuItem oder Button machst du schlicht und ergreifend dann this.close() oder Application.Exit() obwohl ich bei der Exit Methode nicht ganz sagen kann, ob das da reibungslos funzt, weil ich bis jetzt nicht mit exit die formclosing hab zugreifen lassen.

Falls du trotzdem nicht weiter kommst -.-


this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click);
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);

		private void Form1_FormClosing(object sender, FormClosingEventArgs e)
		{
			MessageBox.Show("Jetzt möchte ich bevor die Anwendung beendet wird noch was machen");
		}

		private void btnClose_Click(object sender, EventArgs e)
		{
			this.Close();
		}

		private void closeToolStripMenuItem_Click(object sender, EventArgs e)
		{
			this.Close();
		}
private Nachricht | Beiträge des Benutzers
NonSense
myCSharp.de - Member

Avatar #avatar-1990.gif


Dabei seit:
Beiträge: 73
Herkunft: OÖ

beantworten | zitieren | melden

Ein Programm wird dann geschlossen wenn alles abgearbeitet ist! Das heißt wenn du nur die eine WinForm zum abarbeiten hast so wird nach dem Schließen der WinForm das Programm beeendet. Du musst also deine Anweisungen dort plazieren wo sie unabhänig von der WinForm sind! Damit du auch nach dem schließen der WinForm asführen kanst.


void Main()
{
  //Neue FormTest anlegen..
  
  //Form wird angezeigt
  FormTest.Show()

  //Und hier kanst du noch einen WIndows Dienst starten oder was immer du willst
}
private Nachricht | Beiträge des Benutzers
der-basti
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

beantworten | zitieren | melden

sehr schön!
Danke für für die fixe AW

EDIT sogar noch editiert und ein zweiter post is auch dazu gekommen
habs nun aber
private Nachricht | Beiträge des Benutzers