Schließen der Form abfangen

JJB

Cogito ergo brumm
Tach !

Ich hab ein einfaches Windows.Forms Fenster. Ich brauche den Maximize und den Minimize Button.
Allerdings soll beim Schließen eine Sicherheitsabfrage erfolgen, die möglicherweise zur Folge hat, dass das Fenster nicht geschlossen wird. Somit muß ich das kleine Kreuz rechts oben irgendwie deaktivieren oder abfangen. Wie mache ich das ?

Man kann ein Closing- (während dem Schließen) oder Closed-Event (nach dem Schließen) leicht abfangen. Aber wie verhindert man, dass der Close Befehl, welcher überhaupt dazu führt, nicht zu Ende geführt wird ?

Jemand einen Tip ?
 
Code:
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        If MsgBox("Schließen?", MsgBoxStyle.YesNo) = MsgBoxResult.No Then
            e.Cancel = True
        End If
End Sub
 
Ich vermisse das C# Forum.....

VB ist mir an sich fremd, aber ich hab den analogen Weg in C# schon gefunden.

Sollte eigentlich das erste sein, was man untersucht.... die Args... blöd von mir !

Danke trotzdem !
 
Einfach dazuschreiben, in welcher Sprache du gerade programmierst - dann wird jeder versuchen dir ein Beispiel in deiner Sprache zu posten - sofern möglich.

Wie du weißt gibt es für .NET > 100 Sprachen, daher hat die alte Aufteilung wenig Sinn gemacht.
 
Ich dachte C# und VB sind die gebräuchlichsten.
Welche .Net Sprachen sind denn noch weit verbreitet ?
 
Hi.

Auch wenn es die gebräuchlichsten sind, ist eine Unterteilung in Themengebieten sinnvoller als in verwendete Sprachen, da du aus dem VB.net CodeSnippet genauso was rauslesen kannst, als aus einem C# snippet.

Und wenn man mal wirklich nichts versteht, könntest noch immer bitten so eine kurze Schritt für Schritt Anleitung zu verfassen in der einfach nur die Events, Klassennamen, Methoden etc. erwähnt sind ohne Code. Wobei diese Namen im Vb Snippet eh die selben sind, da sie ja von der .net ClassLibrary angeboten werden, also einfach Anschauen und wenn du auch noch nen bissel Englisch kannst sollte es ja wirklich kein Problem sein.


MfG,
Alex
 
Hi JJB,

kannst du mir sagen wie du, dass dann in C# gemacht hast. Ich komm leider nicht dahinter da ich das erstemal in C# programmiere und ich erstmal die Syntax lernen muss.

gruß
Jack
 
Tach,

ist ne ganze Weile her. Aber eigentlich was ganz triviales. Ich weiß jetzt nicht mit welchen Werkzeugen du arbeitest, aber bei denen von Mircosoft gibt's ja immer die Kontextsensitive Hilfe. Bei Visual Studio zum Beispiel gibst du den Befehl oder die Klasse an und es erscheint eine Combobox mit Vorschlägen inkl. Argumenten.
Wenn du mit C# anfängst, würd ich dir das ans Herz legen. Die Framework Bibliotheken bieten fast alle Funktionalität die die brauchst, wenn du die Argumente und Übergaben richtig einsetzt. Einfach mal die Argumente checken.

In diesem Fall brauchst du für deine Form ein Closing Event:

Code:
myForm.Closing += new System.ComponentModel.CancelEventHandler(myForm.MyForm_Closing);

Dann schreibst du in deiner Klasse die Funktion (sofern sie nicht automatisch erstellt wird) und setzt darin in Abhängigkeit deiner Bedingung das AbbruchFlag.

Code:
private void MyForm_Closing(object sender, System.ComponentModel.CancelEventArgs myEventArg)
{
   if(MyAbortCondition == true)
      myEventArg.Cancel = true;
}

Freut mich, dass es hier Leute gibt, die etwas wissen möchten, das ich weiß. Gibt mir das Gefühl etwas zu wissen ;).

Frag ruhig weiter !

Grüße JJB
 
In den Eigenschaften deines Formulars (VS 2005) findest du einen Schalter mit einem Blitz.
Dieser symbolisiert die Ereignisse.
Klickst du darauf, werden dir alle möglichen Ereignisse angezeigt, die dein Formular oder ein Element deines Formulars auslösen.
Ein Dopelklick in das Textfeld des Ereignisses stellt dir dann die Methode zur Verfügung.

Ich hoffe, ich habe es einigermaßen verständlich wiedergegeben.

Glück auf, Ralf
 

Neue Beiträge

Zurück