Laden...

Window mit dem 'X' Symbol schließen

Erstellt von der-basti vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.427 Views
D
der-basti Themenstarter:in
63 Beiträge seit 2006
vor 17 Jahren
Window mit dem 'X' Symbol schließen

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

R
494 Beiträge seit 2006
vor 17 Jahren

Schau dir mal das FormClosing oder FormClosed Event an.

D
der-basti Themenstarter:in
63 Beiträge seit 2006
vor 17 Jahren

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();
        }

187 Beiträge seit 2005
vor 17 Jahren

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()

D
der-basti Themenstarter:in
63 Beiträge seit 2006
vor 17 Jahren

hmm...
aber irgendwie bekomme ich es nicht hin 🙁
kann mir jemand mit code snippes auf die sprünge helfen?

187 Beiträge seit 2005
vor 17 Jahren

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();
		}
73 Beiträge seit 2006
vor 17 Jahren

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
}
D
der-basti Themenstarter:in
63 Beiträge seit 2006
vor 17 Jahren

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 🙂