Programmschliessabbruch 2

30/09/2009 - 22:43 von Hans Meier | Report spam
Hi,

irgendetwas passt da nicht! Ich habe nun noch

eine Checkbox7 eingebaut. Wenn die aktiviert

ist, so soll das Programm SOFORT geschlossen

werden - ohne Nachfrage der Messagebox und

wenn Checkbox7 deaktiviert so soll die Message-

box mit meiner schon "berühmten" Frage kommen:



My.Settings.Save()

If Me.CheckBox7.Checked = True Then

Me.Close()

Exit Sub

End If

If MsgBox("Programm wirklich beenden?", MsgBoxStyle.YesNo Or
MsgBoxStyle.Question) = MsgBoxResult.No Then

e.Cancel = True

Else

My.Settings.Save()

End If



Bitte wieder um Hilfe - DANKE!


MG: HM
 

Lesen sie die antworten

#1 Armin Zingler
30/09/2009 - 23:01 | Warnen spam
Hans Meier schrieb:
Hi,

irgendetwas passt da nicht! Ich habe nun noch

eine Checkbox7 eingebaut. Wenn die aktiviert

ist, so soll das Programm SOFORT geschlossen

werden - ohne Nachfrage der Messagebox und

wenn Checkbox7 deaktiviert so soll die Message-

box mit meiner schon "berühmten" Frage kommen:



My.Settings.Save()

If Me.CheckBox7.Checked = True Then

Me.Close()

Exit Sub

End If

If MsgBox("Programm wirklich beenden?", MsgBoxStyle.YesNo Or
MsgBoxStyle.Question) = MsgBoxResult.No Then

e.Cancel = True

Else

My.Settings.Save()

End If



Bitte wieder um Hilfe - DANKE!



Und was ist das Problem? Hast du vergessen, zu schreiben.

Ich vermute, der Code steht im FormClosing-Ereignshandler. Dann ist
"Me.Close" recht sinnfrei, denn Close wurde ja schon _vorher_ aufgerufen.
Sonst würde ja nicht FormClosing ausgelöst werden. Wenn du darin wieder
Close aufrufst, wird wieder FormClosing ausgelöst usw. Das führt zu einer
Endlosschleife und zum Stackoverflow. Ich schàtze, das ist das Problem,
das du mometan hast (oder?). Bereinigt könnte es so aussehen:

If Me.CheckBox7.Checked = False Then
If MsgBox("Programm wirklich beenden?", _
MsgBoxStyle.YesNo Or MsgBoxStyle.Question) _
= MsgBoxResult.No Then

e.Cancel = True
Return
End If
End If

My.Settings.Save()


Armin

Ähnliche fragen