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

joven

Form Unload

16 mensagens neste tópico

Boas

Alguém sabe como posso acrescentar mais algum código quando desligo o meu programa?

Eu já utilizei algo do género em vb utilizava "FORM_unload".

Dá para fazer no C#?

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, em C# tens o evento Closing.

Não sei se sabes como usar os eventos... se não sabes e usas o Visual Studio é só ir às propriedades da Form, clicar naquele botão que tem a imagem de um raio (eventos), procurar o evento Closing e clicar 2 vezes. O Visual Studio automaticamente cria o método NomeDaForm_Closing(object,EventArgs), só tens que lá meter dentro o código que queres que seja executado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boa tarde

Não percebi bem a pergunta e mas pela resposta se calhar a dúvida é parecida...

O meu programa tem vários window forms. Acontece que ao executar eu pretendo que o primeiro form apareça. Ele aparece e faz o que deve. O problema vem agora... Se a password estiver correcta ele mostra outro form com a aplicação principal, mas o primeiro form nao desaparece... e eu quero fechá-lo. Alguma ideia de como fazer isso?

Desde já obrigado

Ricardo Plácido

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com o Close() não dá senão desliga-me a aplicação toda... mas usei o Visible = false;

Obrigado. Problema resolvido ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora, como é que ao clicar no botão X para fechar o form eu posso fazer com que apareça uma mensagem de confirmação? Eu sei fazer a mensagem, não é como aceder à função do X.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com o Close() não dá senão desliga-me a aplicação toda... mas usei o Visible = false;

Obrigado. Problema resolvido ;)

Eu já ia com o teclado a jeito para dizer para usares o método Hide(), mas meter o Visible a false deve fazer o mesmo efeito...

Já agora, como é que ao clicar no botão X para fechar o form eu posso fazer com que apareça uma mensagem de confirmação? Eu sei fazer a mensagem, não é como aceder à função do X.

Usas o VisualStudio, certo?

Com o editor em modo gráfico clica duas vezes no X. O Visual Studio automaticamente cria-te um método que é executado quando se clica no X.

private void mainForm_FormClosing(object sender, EventArgs e)
{
bool TemCerteza;

//...

//se NAO quiser fechar...
((FormClosingEventArgs)e).Cancel = true;

//se quiser fechar...
((FormClosingEventArgs)e).Cancel = false;


}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu ja carreguei mas aparece-me o método

private void Form1_Load(object sender, EventArgs e)

        {

        }

e não o k tu dizes... :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmmm tens razão, então em vez disso o que tens de fazer é ir aos eventos da Form, procurar o evento FormClosing e clicar-lhe duas vezes. O metodo criado não é exactamente igual ao que eu disse, já que recebe FormClosingEventArgs e em vez de EventArgs e, ou seja, já não precisas de fazer o cast do e dentro do método.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desculpa la, onde é k estão os eventos da Form? Nalgum sitio especifico?  :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No Visual Studio, clicas na Form, vais às propriedades (F4) e depois clicas nos eventos (marcado com um quadrado verde no screenshot).

untitlednw0.th.jpg

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já consegui. Outra pergunta ;) Ao clicar no botão X para sair da aplicação eu pretendo que todos os forms que estão Hidden sejam também fechados... Como é que eu acedo aos outros forms para os fechar a partir deste? Senão este último desaparece mas os outros continuam invisíveis mas a trabalhar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sem saber exactamente como é que tens organizado o programa é difícil dizer-te como deves fazer isso, mas para todos os Forms poderem aceder a todos os Forms eu sugeria criares uma classe com uma lista de todas as Forms criadas. Assim quando quisesses fechar as Forms era só percorrer a lista de forms e fechá-las todas.

Assim de repente é a única coisa que me ocorre, não testei, não sei sequer se esta maneira é implementável.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se fizeres Application.Exit() o programa será terminado por completo e não irá ficar nenhum form a trabalhar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se fizeres Application.Exit() o programa será terminado por completo e não irá ficar nenhum form a trabalhar...

Serve, desde que não haja problemas em fechar as outras Forms de forma abrupta...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já está... consegui. Usei antes o Application.ExitThread(); que fez exactamente aquilo que eu queria.

Obrigado uma vez mais.

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