none
Se me cierra todo :-( RRS feed

  • Pregunta

  •  

    Tengo un formulario inicio, el cual pide nombre de usuario y contraseña, cuando ambas son correctas pretendo que se abra un nuevo formulario, el principal, para que despues se cierre el formulario inicio. El problema es que con me.close o me.dispose o inicio.close o inicio.dispose, se me cierra toda la aplicación. ¿Que debo hacer?¿Como puedo hacer para que se me cierre solo el formulario que quiero?

     

    Gracias. Salu2.  

    viernes, 14 de diciembre de 2007 5:08

Respuestas

  • De la manera que te he dicho yo no puedes hacer nada con el menu principal, hasta que no hagas login en frm_pass, en cuanto a lo de cerrar la pantalla de login con Alt+F4 es sencillo, en el evento keypress de las dos cajas de texto pones este código y solucionado.

     

            If e.KeyData = Keys.Alt + Keys.F4 Then
                e.Handled = True
            End If

     

    Salu2

    viernes, 14 de diciembre de 2007 23:12

Todas las respuestas

  • La solución rápida sería hacer un me.hide, aunque no es la más óptima porque te deja el formulario en memoria.

     

    La habitual es hacer que el formulario principal sea el primero en cargar. Lo pones a Visible=False, y haces que cargue el formulario de Inicio. Si el Login sale OK, Visible=true, y cierras el form de login, que sale mal, cierras el principal antes siquiera de que llegue a verse.

     

    Espero haberme sabido explicar...

     

    Salud y suerte!

    viernes, 14 de diciembre de 2007 6:32
    Moderador
  • A mi se me ocurre esto:

     

    en el form principal qeu es el que primero arranca ponemos esto en su evento load:

     

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    My.Forms.frm_pass.ShowDialog()

    End Sub

     

    asi cuando carga el form1 se muestra a su vez el form con el login y una vez mostrado controlamos los datos introducidos por el usuario por ejemplo de esta manera:

     

    Private Sub btn_cancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_cancelar.Click

    End

    End Sub

     

    Private Sub btn_aceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_aceptar.Click

    If Me.txt_usuario.Text = "usuario" And Me.txt_password.Text = "password" Then

    Me.Close()

    Else

    Me.txt_usuario.Clear()

    Me.txt_password.Clear()

    Me.txt_usuario.Focus()

    End If

    End Sub

     

    Espero que te valga. Salu2

    viernes, 14 de diciembre de 2007 16:32
  • Toni gracias por su respuesta, pero creo desde mi ignorancia que lo que sugeris es peligroso. Si cargo el frm principal y luego el login,  con Alt+F4 salto el login sin problemas, sin introducir nombre de usuario ni contraseña y por más que el frm no se vea queda en memoria.

     

    Bueno no se veré. Salu2. Gracias.

    viernes, 14 de diciembre de 2007 21:38
  • barbaroja gracias a ti tambien por la respuesta, pero creo que de la manera que me sugeris habia que hacerle o bien frmprincipal.hide o frmprincipal.enable=False o algo que me bloquee el frmprincipal preio al pass=ok.

     

    Gracias, vere como soluciono, saludos.

     

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    My.Forms.frm_pass.ShowDialog()

    Me.enable = False

    '---- o sino ----

    Me.hide

    End Sub

     

    Igual no me convence.

    viernes, 14 de diciembre de 2007 21:48
  • De la manera que te he dicho yo no puedes hacer nada con el menu principal, hasta que no hagas login en frm_pass, en cuanto a lo de cerrar la pantalla de login con Alt+F4 es sencillo, en el evento keypress de las dos cajas de texto pones este código y solucionado.

     

            If e.KeyData = Keys.Alt + Keys.F4 Then
                e.Handled = True
            End If

     

    Salu2

    viernes, 14 de diciembre de 2007 23:12