Ir para conteúdo
Fórum Script Brasil
  • 0

Menu principal não esconde após tela de login


JoaoMarcosRS

Pergunta

Estou criando um programa com uma tela de login, porém se iniciar a tela de login primeiro não tem como fecha-la

Ex: abro o programa e inicia-se a tela de login

      logo após preencher os dados de login e checar as credenciais ele abre o menu principal

      porém não tem como fechar a tela de login pois o menu principal depende dela

      então se tentar fechar a FormLogin ele também fecha o menu principal.

 

      Por isso minha ideia era abir o menu principal ao iniciar o programa depois deixa-lo invisível e abrir a tela de login assim eu posso fechar a tela de login sem fechar o menu principal

 

Achei essa solução porém mesmo com o comando o menu principal não fica invisível

 

Public Class jnlMenu_Principal
    Private Sub jnlMenu_Pricipal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Visible = False
        jnlLogin.Show()
    End Sub
End Class

 

Alguém poderia me ajudar, por favor!

Desde de já agradeço a todos!

Editado por JoaoMarcosRS
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Ao invés de usar Show(), você deveria usar ShowDialog() e retornar o resultado (se fez login ou não) para poder mostrar ou não o form principal, algo como:

Me.Visible = False
if jnlLogin.ShowDialog() = Windows.Forms.DialogResult.OK then
  Me.Visible = True
else
  Application.Exit()
endif

Neste caso, o seu form de login deverá ter (no caso do login ter sucesso)...

Me.DialogResult = DialogResult.Ok

... e (no caso de cancelamento):

Me.DialogResult = Windows.Forms.DialogResult.Cancel

 

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui!!

eu entendi o seu conceito mas como deu erro no Windows.Forms tentei fazer assim:

No Menu Principal

Private Sub jnlMenu_Pricipal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        jnlLogin.ShowDialog()
        Threading.Thread.Sleep(500)
        Me.Visible = False
    End Sub

Na Janela de Login caso clique em OK:

If (tbxNome_de_Usuario.Text = "User") Then
            If (tbxSenha.Text = "User123") Then
                Me.Close()
            End If
        Else

Na Janela de Login caso clique em Cancel:

Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
        Application.Exit()
    End Sub

 Desse jeito funcionou pra quem estiver com duvida nisso também!

Muito Obrigado Graymalkin!!

Link para o comentário
Compartilhar em outros sites

  • 0

Isso aí, você pegou a ideia, assim também vai funcionar, mas tem uma falha aí no caso da pessoa fechar a janela (sem clicar no OK ou no Cancelar) e deverá entrar, não?

Qual versão do Visual Studio você está usando? Experimente usar System.Windows.Forms.DialogResult no exemplo anterior.

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0
47 minutos atrás, Graymalkin disse:

 

Isso aí, você pegou a ideia, assim também vai funcionar, mas tem uma falha aí no caso da pessoa fechar a janela (sem clicar no OK ou no Cancelar) e deverá entrar, não?

 

Sim não havia testado isso e ele realmente entra, infelizmente não tem como desativar o botão de fechar da janela

 

47 minutos atrás, Graymalkin disse:

Qual versão do Visual Studio você está usando?

Visual Studio 2015 Community

 

59 minutos atrás, Graymalkin disse:

Experimente usar System.Windows.Forms.DialogResult no exemplo anterior.

Agora deu certo a programação final ficou a seguinte:

no menu principal:

Private Sub jnlMenu_Pricipal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Visible = False
        If jnlLogin.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            Me.Visible = True
        Else
            Application.Exit()
        End If
    End Sub

na tela de login caso ok:

If (tbxNome_de_Usuario.Text = "User") Then
            If (tbxSenha.Text = "User123") Then
                Me.DialogResult = DialogResult.OK
            End If
        Else
            MsgBox("Nome de Usuario ou Senha incorreto!")
        End If

    End Sub

na tela de login caso cancele:

Private Sub btnCancel_Login_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel_Login.Click
        Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
    End Sub

Mais uma vez muito obrigada de verdade!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152.1k
    • Posts
      651.8k
×
×
  • Criar Novo...