• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Luis Marques

Fechar form com o botao "X"

13 mensagens neste tópico

boas, pessoal alguem se sabe dizer se é possivel proibir uma form de ser fechada atraves do botao "X"??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É possível sim.

No evento FormClosing define e.Cancel = True.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigadao!

O  "X" pode ser removido da form ? ou aparece sem cor, tipo desabilitado?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigadao!

O  "X" pode ser removido da form ? ou aparece sem cor, tipo desabilitado?

Sim pode ser removido na opcao controlbox, mas ai tiras tambem o minimizase maximizase e o icon!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, eu esta opçao sei.

Mas nao queria assim, por isso e que perguntei se alguem sabia!:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tive  a testar melhor e verifiquei que assim dá para fexar de maneira alguma!:S

Eu gostava de saber é se existe maneira de proibir a form de ser fexada apenas com o "X"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É fácil. Declaras uma variável Boolean por defeito a False. Depois, por exemplo, ao clicar num botão que dê para fechar passas a variável a True. No evento verificas, se estiver True fecha, senão não fecha.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebes muito de programação no geral pois não? É que se percebes já devias ter chegado à resposta desta última pergunta... Isto não é uma critica, apenas uma observação.

Pensa lá um bocadinho antes de vires aqui colocar dúvidas dessas e antes que alguém te dê a resposta. Se não consegues solucionar um "problema" desses sozinho, nunca vais ter o raciocínio necessário para programar minimamente bem.

Isto que te sugiro, ajuda-te muito mais que a própria resposta...

EDIT:

Já te deram a resposta (o que não deviam ter feito na minha opinião), mas como acho importante o que escrevi, coloco aqui na mesma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

vá, tim tim por tim tim

como scorch disse declaras uma variavel booleana igual a false...

no evento form closing metes um if, se a variavel for falsa não fecha, pões o tal e.Cancel=true como o Nazgulled disse.

Como bloqueas-te o X vais ter de por um botão para sair, aí passas a tal variavel booleana para True e fechas a form.

something like...

Public Class frmLogin
    Dim a As Boolean = False

    Private Sub frmLogin_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        If a = False Then
            e.Cancel = True
        End If
    End Sub

       Private Sub btn_Sair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Entrar.Click
        a = True
        Me.Close()

    End Sub
End Class

Edit:

espero que tenhas percebido bem a lógica  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Concordo com o Nazgulled ... tens de te esforçar um pouco mais. Ele deu-te a dica e tu só precisavas de pesquisar e encontravas muito rapidamente várias ideias.

De qualquer maneira é para fechar o programa ou apenas um form ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se eu clicasse no X da form6 por exemplo, o programa fexava, mas ficava no stopdebugging, porque so fexa totalmente se a form1 for fexada. Era isso que eu queria resolver.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nesse evento usaria antes o e.CloseReason

Experimenta e mete isto assim (nunca testei em MDI forms, mas penso estar correcto):

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

If Not e.CloseReason = CloseReason.WindowsShutDown Or Not e.CloseReason = CloseReason.MdiFormClosing Then

  e.Clancel = True

End If

End Sub

http://pastebin.ca/1400913

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, tenho a ideia que há uma API para fazer o que se pretende mas isso para vb6.0, agora, para a plataforma .net não sei mas persumo que sim devido ao facto de se poder importar o vb6.0.....é a questão de se procurar.....

Cumprimentos....

0

Partilhar esta mensagem


Link 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