Klick auf den X-Button abfangen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Nazas.

    Klick auf den X-Button abfangen

    Ich möchte gerne den X-Button der zum Schließen verwendet wird (oben rechts auf der Form) in einen "Minimieren"-Button ändern.
    Nun hab ich im Forum gesucht und finde Einträge, wo die Leute es in die Form_Closing reinschreiben.
    Da ich das Programm aber über das TrayIcon schließen möchte, wird das doch damit auch verhindert (da der Befehl Me.Close() wiederum die Form_Closing event ansteuert), oder irre ich mich?
    lies dir im Closing-Event ma die Enumerationen des Event-Args (e....) durch. da kannst du abfragen, wer oder warum Form_Closing aufgerufen wurde.

    Edit:
    Im Click-ereignis des Notify-Icons eine Bool-Variable "wirklich_schließen" setzen und im Closing abfragen...
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    das hier fängt das minimieren/maximieren/wiedersichtbarmachen nachmaximieren ab

    VB.NET-Quellcode

    1. Protected Overrides Sub OnResize(ByVal e As System.EventArgs)
    2. MyBase.OnResize(e)
    3. Select Case Me.WindowState
    4. Case FormWindowState.Normal
    5. 'MessageBox.Show("Form was restored",
    6. 'Application.ProductName)
    7. Case FormWindowState.Minimized
    8. MessageBox.Show("Form was minimized",
    9. Application.ProductName)
    10. Case FormWindowState.Maximized
    11. MessageBox.Show("Form was maximized",
    12. Application.ProductName)
    13. End Select
    14. End Sub


    das hier das schließen der form


    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 MsgBox("Wollen Sie das Programm wirklich beenden?", vbQuestion Or vbYesNo Or vbDefaultButton2, "beenden ?")
    3. Case vbYes
    4. Me.Dispose() 'Fenster wird geschlossen
    5. End
    6. Case vbNo
    7. e.Cancel = True 'Fenster wird nicht geschlossen
    8. End Select
    9. End Sub

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    2. If MessageBox.Show("Wollen Sie das Programm wirklich beenden?", "Beenden", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.No Then e.Cancel = True
    3. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Unwesen“ () aus folgendem Grund: verkürzt

    HIer nen eifacher Code

    VB.NET-Quellcode

    1. Private Sub Browser_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    2. Me.Hide()
    3. e.Cancel = True
    4. End Sub


    musst dann aber ein NotifyIcon einfügen damit man es wieder öffnen kann wenn es verschwunden ist