Ir para o conte√ļdo
  • Revista PROGRAMAR: J√° est√° dispon√≠vel a edi√ß√£o #60 da revista programar. Faz j√° o download aqui!

mekanis

Fechar programa no X

Mensagens Recomendadas

mekanis

Boas pessoal,

Tenho mais uma d√ļvida¬† ūüė≥

tenho este código:

Private Sub sair() Handles SairToolStripMenuItem.Click, Me.FormClosing
        If MessageBox.Show("Deseja Sair da Aplicação?", "Sair", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
            Application.Exit()
        End If
    End Sub

a minha inten√ß√£o era poder fechar no X, ali o do canto¬† :thumbsup: , e um outro bot√£o. mas com esse c√≥digo que fiz aparece duas vezes a messagebox¬† ūüė° .

J√° tentei de tudo e n√£o h√° meio de dar com o bixo, podem-me ajudar?

Obrigado, cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
softklin

Quando carregas nesse tal botão, em vez de teres o evento a apontar para a função sair, coloca apenas

Me.close()

Essa linha irá então desencadear o evento FormClosing, que já tens associado à função sair. Ou seja, nessa função muda a assinatura para

Private Sub sair() Handles Me.FormClosing


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock
    Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles Me.Closing
        If MessageBox.Show("Deseja Sair da Aplicação?", "Sair", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
            e.Cancel = False
        Else
            e.Cancel = True
        End If
    End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kazzx

viva,

eu para essa situação costumo adaptar um método bastante simples e que funciona sempre.

para isso:

declaras uma vari√°vel global:

 Private sair As Boolean = True 

no formclosing:

Private Sub frm1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Dim resp As MsgBoxResult
        If sair Then
            resp = MsgBox("Deseja mesmo sair?", _
                          MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Sair")
            If resp = MsgBoxResult.No Then
                e.Cancel = True
            End If
        End If
    End Sub

no bot√£o:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Close()
    End Sub

espero ter ajudado,

cumps :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Deves verificar qual a CloseReason (sem ser necess√°rio o uso de vari√°veis auxiliares).

Exemplo:

  Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SairToolStripMenuItem.Click
    Me.Close()
  End Sub

  Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    If e.CloseReason <> CloseReason.ApplicationExitCall Then

      If MessageBox.Show("Deseja Sair da Aplicação?", "Sair", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
        Application.Exit()
      Else
        e.Cancel = True
      End If

    End If
  End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. √Č f√°cil!

Registar nova conta

Entra

J√° tem conta? Inicie sess√£o aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site voc√™ aceita os nossos Termos de Uso e Pol√≠tica de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informa√ß√Ķes visite esta p√°gina.