Entwickler-Ecke
WinForms - Verwirrung bezgl. Beenden einer Anwendung
Cyron - Do 03.08.06 21:20
Titel: Verwirrung bezgl. Beenden einer Anwendung
Hallo,
gerade hat mich mein RSS-Reader über ein neues Snippet informiert:
http://www.dotnet-snippets.de/dns/Snippet_detail.aspx?=182
Muß das so sein?
Ich hab's bislang immer so gemacht:
C#-Quelltext
1: 2: 3: 4: 5:
| private void ExitButton_Click(object sender, EventArgs e) { Dispose(); Application.Exit(); } |
Ist das falsch?
Kha - Fr 04.08.06 10:11
Was hat der eine Code mit dem anderen zu tun :gruebel: ?
Der Snippet-Code zeigt einen Sicherheitsdialog an, um das Schließen eines Fensters vom User bestätigen zu lassen, und dein Code schließt alle Fenster und schlussendlich die Anwendung; das sind doch zwei Paar Schuhe.
Dein Code mit Application.Exit() ist soweit richtig[meta]Jedenfalls unter .Net 2.0, siehe SDK[/meta], den Dispose()-Aufruf solltest du aber entfernen. Ob du nun deinen Fenstern noch diese Sicherheitsabfrage hinzufügst, ist deine Entscheidung und hängt vom Typ der Anwendung ab.
Cyron - Fr 04.08.06 12:36
Achso, jetzt sehe ich das. Der Author hat den Button "Form1_FormClosing" genannt.
Warum sollte ich Dispose() rausnehmen?
Christian S. - Fr 04.08.06 19:56
Cyron hat folgendes geschrieben: |
Achso, jetzt sehe ich das. Der Author hat den Button "Form1_FormClosing" genannt. |
Da ist kein Button, das ist das FormClosing-Event der Form, wie diese Zeile des verlinkten Codes zeigt:
C#-Quelltext
1:
| this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing); |
Cyron - Fr 04.08.06 21:57
Muß man diesen Eventhandler selber schreiben oder bietet der Forms-Designer so etwas? Wenn ja, wie? :oops:
Cyron - Fr 04.08.06 22:04
Hat sich erledigt, danke :)
Kha - Sa 05.08.06 11:16
Cyron hat folgendes geschrieben: |
Warum sollte ich Dispose() rausnehmen? |
Wenn Application.Exit() erfolgreich ist, werden alle Forms automatisch freigegeben, darum musst du dich also nicht kümmern. Sollte nun aber Exit() (oder Close()) durch einen Eventhandler wie im Snippet-Code aufgehalten werden, sodass die Anwendung normal weiterläuft, hast du ein Problem, da du das Fenster ja schon zerstört hast.
Cyron - Sa 05.08.06 12:54
Alles klar, danke. :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!