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