Como se sale de un formulario cuando este envia a ejecutar otro

Iniciado por luis456, 25 Septiembre 2013, 20:59 PM

0 Miembros y 1 Visitante están viendo este tema.

luis456

hola

Tengo dos formularios uno es del login funciona pero no se como hacer para que cuando este logeado se cierre ya que me queda siempre visible ???


Código (vbnet) [Seleccionar]
Public Class Login

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If TextBox1.Text = "jose123" Then
            MsgBox("Entraste")
            Form2.Show()
        Else
            MsgBox("seguro eres tu ?")
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        End

    End Sub
   
End Class
Que tu sabiduria no sea motivo de Humillacion para los demas


luis456

Que tu sabiduria no sea motivo de Humillacion para los demas

MCKSys Argentina

Eso oculta el form, pero no lo descarga de la memoria.

Lo que podrias hacer es algo así:

Código (vb) [Seleccionar]

Dim Logged As Boolean

Private Sub Command1_Click()
If Text1.Text = "jose123" Then
    Logged = True
    Unload Me
End If
End Sub

Private Sub Form_Load()
Logged = False
End Sub

Private Sub Form_Unload(Cancel As Integer)
If Logged Then
    Load Form2
    Form2.Show
End If
End Sub


Ese código está en VB6 (este subforo es de VB6, no .NET :) )

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


luis456

#4
Bueno ahora despues del logeado se oculta pero despues al finalizar el programa lo soluciono

Código (vbnet) [Seleccionar]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If TextBox1.Text = "jose123" Then
            MsgBox("Entraste")
            Me.Hide()
            Form2.Show()
        Else
            MsgBox("seguro eres tu ?")
        End If

    End Sub
End Class




con este boton de cerrar el sistema bueno una chapuza pero sirvio ( creo yo jejej)

Código (vbnet) [Seleccionar]
Public Class Form2

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Close()
    End Sub
End Class


Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#5
Luis, intenta seguir las indicaciones del compañero @MCKSys Argentina,

¿Es una chapuzilla?, se podría decir que si, porque mantienes en ejecución ocupando memoria un Form que ya no necesitas, pero también hay que decir que es una chapuzilla sin importancia porque el Form del Login no te va a molestar estando oculto y tampoco te va a dar problema con la memoria consumida, pero si quieres mejorarlo un poco, aquí tienes:

Código (vbnet) [Seleccionar]
Public Class MainForm

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

       LoginForm.ShowDialog()
       ' Al usar el método "ShowDialog" tratamos al Form como un diálogo,
       ' esto quiere decir que se detiene la ejecución del hilo en este evento hasta que cierres el "diálogo" (devolviendo una respuesta o no),
       ' por lo tanto este Form no se mostrará hasta que te loguees, ya que en este punto la ventana todavía no se ha dibujado.

   End Sub

End Class


Código (vbnet) [Seleccionar]
Public Class LoginForm

' Aquí me ahorro las explicaciones, que son muchas cosas y es muy tarde (o muy temprano según se mire)
' Si no entiendes algo pregunta
' Básicamente son mejoras de código, y un añadido extra para que al presionar la tecla "Enter" en el textbox te puedas loguear.

   ReadOnly VerifiedPassword As String = "jose123".ToLower
   Private RetryResponse As DialogResult = Nothing

   ReadOnly Property UserPassword
       Get
           Return TextBox_Password.Text.ToLower
       End Get
   End Property

   Private Sub LoginForm_Load(sender As Object, e As EventArgs) _
   Handles Me.Load

       Me.CenterToScreen()

   End Sub

   Private Sub TextBox_Password_KeyPress(sender As Object, e As KeyPressEventArgs) _
   Handles TextBox_Password.KeyPress

       If e.KeyChar = Convert.ToChar(Keys.Enter) Then
           Button_Login.PerformClick()
       End If

   End Sub

   Private Sub Button_Login_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
   Handles Button_Login.Click

       If UserPassword = VerifiedPassword Then

           MessageBox.Show(String.Format("Bienvenido {0} !", VerifiedPassword), _
                           "Login", _
                           MessageBoxButtons.OK, _
                           MessageBoxIcon.Information)

           MainForm.Show()
           Me.Dispose()

       Else

           RetryResponse = MessageBox.Show("Clave de acceso incorrecta, ¿Quieres reintentar?", _
                                           "Login", _
                                           MessageBoxButtons.RetryCancel, _
                                           MessageBoxIcon.Error)

           Select Case RetryResponse

               Case DialogResult.Cancel
                   End ' No tomes por costumbre usar esta orden, lo uso para no escribir más código y porque el Form principal no carga "nada", pero debes usar "Application.Exit"

               Case DialogResult.Retry
                   TextBox_Password.Clear()
                   TextBox_Password.Focus()

           End Select

       End If

   End Sub

End Class


Saludos








luis456

Que tu sabiduria no sea motivo de Humillacion para los demas