none
Tela de Logout -> login RRS feed

  • Pergunta

  • Prezados, Meu problema é o seguinte:

    Em meu projeto, tenho um form para login, que quando o usuário loga com sucesso, a form carrega as permissões, e a form de login fecha e a form principal aparece.

    Neste momento, estou querendo fazer com que, dentro da form principal, ele consiga fazer o login novamente, ou seja, realizar o logoff(clicar no botao logoff), a tela principal some e aparece novamente a tela de login, onde ele insere novamente as informações e loga novamente.

    A duvida é, como eu faço isso?

    Grato por toda a ajuda......

    quarta-feira, 4 de dezembro de 2013 16:54

Respostas

  • Opa!

    Parente, nesse caso, você vai precisar de 3 Forms: um para o Splash, um para o Login e outro para o Principal.

    Minha solução consiste em deixar o Form1 rodando o tempo todo em segundo plano.

    Faz assim:

    - Adicione um componente Timer ao frmSplash(Form1)

    - Adicione um componente PictureBox e coloque uma imagem bem maneira...

    - Adicione um componente ProgressBar ao frmSplash

    - Altere a propriedade FormBorderStyle do frmSplash para : none

    - Altere a propriedade StartPosition do frmSplash para : CenterScreen

    - Altere a propriedade Dock do PictureBox para: Fill

    - Altere a propriedade Enabled do componente Timer para: True

    - No evento FormClosing do objeto frmLogin, adicione o seguinte código:

            private void frmLogin_FormClosing(object sender, FormClosingEventArgs e)
            {
                Application.Exit();
            }

    - No evento FormClosing do objeto frmPrincipal, adicione o seguinte código:

            private void frmPrincipal_FormClosing(object sender, FormClosingEventArgs e)
            {
                Application.Exit();
            }


    - No evento Tick do Timer, adicione o seguinte código:

            private void timer1_Tick(object sender, EventArgs e)
            {
                if (progressBar1.Value <= 100)
                {
                    progressBar1.Value = progressBar1.Value + 25;
                }
                else
                {
                    timer1.Enabled = false;
                    frmLogin frm = new frmLogin();
                    frm.Show();
                    this.Visible = false;
                }
            }

    .

    - No evento que consiste o login, adicione o seguinte código: (nesse exemplo vou usar um buttom)

            private void button1_Click(object sender, EventArgs e)
            {
                this.Dispose();
                new frmPrincipal().Show();
            }

    - No evento do Click do botão de LogOff que vai estar no frmPrincipal, adicione o seguinte código:

            private void buttonLogOff_Click(object sender, EventArgs e)
            {
                this.Dispose();
                new frmLogin().Show();
            }

    Acho que não esqueci nada.

    Ah! tem uma coisa: considere esse código:

                if (resposta_util)
                    marque();

    Boa Luck!



    • Editado Viniciusalopes quarta-feira, 11 de dezembro de 2013 22:21 Melhoria do código
    • Marcado como Resposta Giovani Cr quinta-feira, 12 de dezembro de 2013 10:56
    quarta-feira, 11 de dezembro de 2013 22:10