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

gadNY

Fechar Forms c#

12 mensagens neste tópico

Boas,  tenho um programa que tem um formprincipal que da acesso aos outros, mas nunca  e fechado, ou seja o utilizador tem sempre acesso a ele, mas como la tenho uma area de login o utilizador pode fazer logout, o problema e que ao fazer logout nao fecha os forms que estao abertos e pode continuar a usar o programa :x

eu queria que ao fazer logout no formprincipal ele fecha-se todos os outros .

alguma sugestao ?  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se terminares o processo, fecha tudo.

Application.Exit acho eu.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se terminares o processo, fecha tudo.

Application.Exit acho eu.

ao fazer isso ele vai fechar toda a aplicacao, e eu queria apenas deichar o formprincipal aberto para poder fazer login outra vez .

:/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não tinha percebido.

Nesse caso tens q guardar registo dos forms q tens abertos.

Quando fazes logout percorres esses registos e fechas um a um, com o close ou dipose.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois, e isso que eu quero fazer, o problema e que nao faco a minima ideia de como fazer :x

o meu problema esta em guardar os forms que estao abertos :x

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Repara que cada form é uma classe. Cada classe tem métodos e um dos métodos desta classe chama-se hide();

Quando abres uma form tens de criar uma variável com essa classe, por exemplo, tens uma form chamada 'formulario'.

Se a memória não me falha fazes, Form variavel = new formulario();

De seguida abres esse formulario: variavel.show().

Para que o teu programa não termine, não podes fechar o formulário com que o inicias, e para que tal não aconteça terás que por this.hide();

O teu formulário principal será apenas escondido e o outro será aberto. Para o fechares tens duas opções: ou escondes e fazes variavel.hide(); ou então fechas e fazes variavel.dispose();

Espero não te ter confundido  :P

Cump's!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se todos os outros forms forem abertos apartir do principal podes faxer(ou algo do genero, desculpa mas n exprimentei tenho de baxar):

            foreach (Form child in this.MdiChildren)
            {
                child.Close();
            }

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se todos os outros forms forem abertos apartir do principal podes faxer(ou algo do genero, desculpa mas n exprimentei tenho de baxar):

            foreach (Form child in this.MdiChildren)
            {
                child.Close();
            }

Cumps

nao percebi mesmo o que esse codigo faz :x

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aquele código, se não estou em erro, fecha todas as classes derivadas (classes filhas) da classe principal que é a tua form principal. (classe mãe).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim penso que seria isso mas não funciona pelo que tive a testar.. podes sempre fazer assim.. sempre que declarares um form para depois mostrar fazes:

            form2.Owner = this;

por exemplo.. e depois quando tiveres a fazer logout fazes:

            foreach (Form child in this.OwnedForms)
            {
                child.Close();
            }

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ve isto..

dialogResult result = MessageBox.Show("Deseja mesmo Sair?", " (texto)", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (result == dialogResult.yes)

this.close();

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pelo que ele descreveu não tem nada a ver com isso joel22rm

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