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 ???
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
Me.Hide
si no recuerdo mal
Eso oculta el form, pero no lo descarga de la memoria.
Lo que podrias hacer es algo así:
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!
Bueno ahora despues del logeado se oculta pero despues al finalizar el programa lo soluciono
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)
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
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:
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
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
:) Gracias a todos por la ayuda
luis