Laden...

Doppelt Gemoppelt !?

Erstellt von HuStLeR vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.460 Views
H
HuStLeR Themenstarter:in
53 Beiträge seit 2007
vor 16 Jahren
Doppelt Gemoppelt !?

Hallo habe in meinem Programm die folgenden 2 Codeabschitte...

        private void button2_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Wollen Sie das Programm wirklich beenden?", "Wirklich beenden?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.Yes)
                MessageBox.Show("Danke das du mit meinem Programm gearbeitest hast ;-)", "Danksagung", MessageBoxButtons.OK, MessageBoxIcon.Information);
            Application.Exit();
        }

und

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult result = MessageBox.Show("Wollen Sie das Programm wirklich beenden?", "Wirklich beenden?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.Yes)
                MessageBox.Show("Danke das du mit meinem Programm gearbeitest hast ;-)", "Danksagung", MessageBoxButtons.OK, MessageBoxIcon.Information);
            Application.Exit();
        }

Nun leider wenn ich nun auf den Close Button gehe.. oder das Programm über das Kreuzchen beende... kommt die Abfrage immer 2mal ... Also die MessageBox ob ich wirklich beenden will....

Außerdem schließt das Programm auch wenn ich Nein drücke, weil ich nicht genau weiß wie ich dies nun in diesen Code einbringen kann!
Weil eigentlich habe ich ja nur if result = yes... bei no müsste dann alles beim alten bleiben, so ist es zumindest wenn ich nur diesen Teil verwende

DialogResult result = MessageBox.Show("Wollen Sie das Programm wirklich beenden?", "Wirklich beenden?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.Yes)
            Application.Exit();
49.485 Beiträge seit 2005
vor 16 Jahren

Hallo HuStLeR,

Hallo habe in meinem Programm die folgenden 2 Codeabschitte...

ruf in button2_Click einfach nur Close auf.

Außerdem schließt das Programm auch wenn ich Nein drücke,

e.Cancel = true

herbivore

T
75 Beiträge seit 2007
vor 16 Jahren

Hey..
in dem Event von dem Button 2 schreib einfach ein

Application.Exit();

rein.. damit sollte der eventhandler des formenschließens aufgerufen werden.. dann ist das doppelte da raus.

Im weiteren musst du das DialogResult.No auch abfangen, ansonsten schließt die Form ja, wenn du nichts machst.


private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult result = MessageBox.Show("Wollen Sie das Programm wirklich beenden?", "Wirklich beenden?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.Yes)
                MessageBox.Show("Danke das du mit meinem Programm gearbeitest hast ;-)", "Danksagung", MessageBoxButtons.OK, MessageBoxIcon.Information);
            else if (result == DialogResult.No)
                  e.Cancel = true;

Das müsste gehen..🙂

Viele Grüße

Till-H