Schließen verhindern

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von leonkurt.

    Mr_T schrieb:

    Wenn das mal nicht nach einem Virus riecht...
    :whistling: Selbstzerfändlich. Soll vielleicht nen Window mit Wärmeschutzverglasung werden?
    @TE
    Schau dir mal das Closing-Event der Form an.
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:

    VB.NET-Quellcode

    1. Dim boolClose As Boolean
    2. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    3. Try
    4. If boolClose = False Then
    5. e.Cancel = True
    6. 'Mach was
    7. Else
    8. 'Mach was
    9. End If
    10. Catch ex As Exception
    11. End Try


    du Setzt "boolClose" auf False wenn es nicht geschlossen werden darf, und auf True wenn es sich schließen darf.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Annoxoli“ ()

    Wenn du schon Code postest, dann bitte auch einen der Sinn ergibt. (Würde den gerne erklärt haben was der bewirkt)
    Abgesehen davon, dass Vatter bereits auf die Lösung gedeutet (um die Eigeninitiative anzukurbeln) hat hier wenigstens Code der Sinn ergibt.

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    2. Select Case e.CloseReason
    3. Case CloseReason.UserClosing ' ALT+F4, oben das 'X', usw
    4. e.Cancel = True ' Schließen abbrechen
    5. Case CloseReason.WindowsShutDown ' Windows fährt runter und dein Programm ist offen
    6. 'was weiß ich
    7. Case CloseReason.TaskManagerClosing ' Programm wird über Task-Manager gekillt
    8. ' kA
    9. End Select
    10. End Sub


    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten

    fichz schrieb:

    Wenn du schon Code postest, dann bitte auch einen der Sinn ergibt. (Würde den gerne erklärt haben was der bewirkt)
    Abgesehen davon, dass Vatter bereits auf die Lösung gedeutet (um die Eigeninitiative anzukurbeln) hat hier wenigstens Code der Sinn ergibt.

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    2. Select Case e.CloseReason
    3. Case CloseReason.UserClosing ' ALT+F4, oben das 'X', usw
    4. e.Cancel = True ' Schließen abbrechen
    5. Case CloseReason.WindowsShutDown ' Windows fährt runter und dein Programm ist offen
    6. 'was weiß ich
    7. Case CloseReason.TaskManagerClosing ' Programm wird über Task-Manager gekillt
    8. ' kA
    9. End Select
    10. End Sub


    lg


    Ich wende diese Methode schon lange so an, und Funktioniert fehlerfrei.
    Wenn du es anders gelernt hast kann ich nichts dafür.

    Hier EXTRA für dich die Erklärung..:

    VB.NET-Quellcode

    1. Dim boolClose As Boolean
    2. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    3. Try
    4. If boolClose = False Then
    5. e.Cancel = True
    6. 'Mach was
    7. Else
    8. 'Mach was
    9. End If
    10. Catch ex As Exception
    11. End Try


    1. Wir deklarieren ein Boolean (Dim boolClose As Boolean)
    2. Wenn wir nicht möchten, das die Form geschlossen wird, so setzten wir den Wert auf "False",
    womit die Form nicht geschlossen werden kann.
    3. Wenn die Form geschlossen werden darf, wird der Wert einfach auf "True" gesetzt.

    Gruß
    DU kannst diese ja anwenden, aber es ist nicht sauber. Fehlerfrei <> Sauber
    - Try Catch in das Event einbauen für e.Cancel = True
    - für was diese Boolean Variable

    Es werden wie oben genannt sogar CloseReasons zur Verfügung gestellt um dementsprechend zu reagieren.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Kannte ich Persönlich nicht.
    Das ist gut zu wissen.
    Wie sagt man so schön ?
    Man lernt sein leben lang..

    Try Catch habe ich Standardmäßig überall eingebunden.

    Die boolean Variable habe ich für folgenden zweck eingebunden:
    In meinen Produkten minimiert sich das Program wenn man es schließt,
    wenn der nutzer aber auf ein Spezifisches Feld klickt, wird dieser Wert auf "True" gesetzt, womit sich die Form schließen kann

    Gruß

    Annoxoli schrieb:

    Die boolean Variable habe ich für folgenden zweck eingebunden:

    Ist auch kein Problem, aber du kannst ja nicht wissen, ob der TE dies auch so hat.

    Annoxoli schrieb:

    Try Catch habe ich Standardmäßig überall eingebunden.

    Das ist leider nicht sehr gut. Denn wenn dein Programm in den Catch Block gerät, lauft es ja nicht mehr so wie es laufen soll. Kannst du da garantieren, dass alles weitere, obwohl deine Methode nicht funktioniert hat, normal weiterlaufen kann?

    ²ErfinderDesRades: hat da wo nen Link wo dies gut erklärt wird.

    Try-Catch sollte man nur in Ausnahmefällen verwenden.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten

    Das ist leider nicht sehr gut. Denn wenn dein Programm in den Catch Block gerät, lauft es ja nicht mehr so wie es laufen soll. Kannst du da garantieren, dass alles weitere, obwohl deine Methode nicht funktioniert hat, normal weiterlaufen kann?

    okay da hast du recht.
    Dankeschön ;)

    und es soll kein Virus werden, ich habe nur weil es einfcher ist alles auf verschiedene vormen verlegt anstadt in pannels, deswegen konnte man sie ganz einfach schließen und das ist ja nicht sinn und zweck deswegen diese blockarde :D