Jump to content
Brav01

Fechar um programa com e.Cancel = True

Recommended Posts

Brav01

Boas Pessoal,

Necessito de alguma ajuda com a minha aplicação

Basicamente optei por fazer o disable do botão de fechar do formulário (Botão to topo direito), fazendo com que minimize em vez de fechar

Com isto, uma vez que ele minimiza vai parar à taskbar como estando a correr em segundo plano

O problema:

  • Não consigo fechar a aplicação sem ser forçada pelo task manager;
  • Tentei colocar um ToolstripmenuItem com um botão de exit, mas não funciona porque fiz disable do closeform;
  • Não consigo com o clicar do botão fazer o enable do closeform (e.Cancel = False) Cancel' is not a member of 'EventArgs';
  • Não consigo/ sei fazer um If then Else a puxar o botão do exit para o Private Sub Form1_FormClosing.

Segue o Código:

Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
        Me.WindowState = FormWindowState.Minimized
        e.Cancel = True

        If Me.WindowState = FormWindowState.Minimized Then
            Me.Hide()
            NotifyIcon1.BalloonTipText = "Program is minimized, Double-click to restore"
            NotifyIcon1.BalloonTipTitle = "Search Tool"
            NotifyIcon1.Visible = True
            NotifyIcon1.ShowBalloonTip(0)

            If ExitToolStripMenuItem.Selected Then
                e.Cancel = False
                Application.Exit()
                'isto não funciona

            End If
        End If
    End Sub

    Private Sub ExitToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExitToolStripMenuItem.Click
        If MsgBox("Você tem certeza que deseja finalizar a aplicação ?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
            Application.Exit()
            e.Cancel = False
            ' o e.Cancel dá erro e quando clico yes volta a minimizar
        End If
    End Sub

Conseguem ajudar?

Melhores Cumprimentos

Share this post


Link to post
Share on other sites
He B TeMy

Application.Exit() fecha os forms todos e encerra a aplicação, se estás a impedir que um form seja fechado a aplicação não irá ser terminada.

O que tens de fazer é só usar o cancel = true em alguns casos, tipo: https://stackoverflow.com/a/14997126

Basicamente ao clicares exit pelo tray pedes uma mensagem de confirmação e actuas consoante a resposta.

Ou então apagas esse e.cancel = true porque parece que não está a fazer nada.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.