积极答复者
Como puedo cerrar un form de login al abrir el form principal?

问题
-
Tengo el siguiente problema
Al ejecutar mi aplicacion se muestra un formulario normal con 2 campo usuario y contraseña y al dar en aceptar si el usuario y contraseña es correcto me abre el form principal un MDI el problema es que el form de contraseña no se cierra
Como hago para que al verificar el usuario y contraseña se cierre el formulario de contraseña y solo quede abierto el form principal?
Ayuda
Es urgente
答案
-
Hola:
En Proyecto > Propiedades > Aplicacion > Objeto inicial > Sub Main
En una clase, copia esto.Public Shared Sub Main()
'Ejecutamos nuestra aplicación
Application.EnableVisualStyles()
Dim loFrmLogin As New FrmFrmLogin
loFrmLogin.ShowDialog()
Dim Resultado As DialogResult
Resultado = loFrmLogin.DialogResult
If Resultado = DialogResult.OK Then
Dim loForm As New FrmMDI
Application.Run(loForm)
End If
End SubUn saludo desde Bilbo
Carlos- 已标记为答案 Novato23 2010年8月17日 19:34
全部回复
-
hola
usa el Main() para lanzar el login antes de ejecutar el form principal
Login – Usando Password con Hash
en este otro link explico como definir el Main en las aplicacion vb.net
Winforms, realizar tareas antes de inicializar aplicacion
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
No estoy utilizando la base de datos solo le di valores a los campos
If
txtusuario.Text = "geslib" And txtcontraseña.Text = "geslib23" Then
frmpadre.Show()
Else
MsgBox(
"Usuario o Contraseña Incorrecta", MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "")
txtusuario.Clear()
txtcontraseña.Clear()
End If
-
lo que puedes hacer es poner el form en hide para que cuando el usuario entree la informacion del login la aplicacion no se cierre bueno supongo que el formulario de inicio es el login form aqui te dejo el ejemplo (simulando tu codigo claro)
Dim frmpadre As New Form Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If txtusuario.Text = "geslib" And txtcontraseña.Text = "geslib23" Then frmpadre.Show() Me.Hide() Else MsgBox("Usuario o Contraseña Incorrecta", MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "") txtusuario.Clear() txtcontraseña.Clear() End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load frmpadre.IsMdiContainer = True End Sub
Saludos.
Mark the better answers for you,do not turn off your mind -
para cerrar el formulario a la hora del que la informacion sea correcta puedes optar por el codigo siguiente
Dim frmpadre As New Form Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If txtusuario.Text = "geslib" And txtcontraseña.Text = "geslib23" Then frmpadre.Show() Me.Close() Me.Dispose() Else MsgBox("Usuario o Contraseña Incorrecta", MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "") txtusuario.Clear() txtcontraseña.Clear() End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load frmpadre.IsMdiContainer = True End Sub
Mark the better answers for you,do not turn off your mind -
hola
mas alla que uses o no una db para autenticar la tecnica en donde defines los formulario podria ser la misma
o sea defines el Sub Main() y es alli donde abres el form de login y si autentica, pasas y abres el form principal
esto es mucho mas simple y controlado que ocultar y mostrar formularios
has descargado los ejemplos de los articulos y los has analizado ? por ahi el segundo sea mas util en este caso
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
Hola..
Intente lo de ocultar el formulario y no me funciono ya que al cerrar el form principal la aplicacion sigue corriendo por que el form de login sigue abierto y me descague el ejemplo que me ofrecio Leandro pero la verdad no entiendo nada y lo digo por que apenas soy un principiante
-
cuando dices "pero la verdad no entiendo nada", a que parte te refires ?o sea que estes comenzando se comprende, pero el "nada" es muy amplio y no ayuda para orientar
el codigo de los formularios, eso lo entiendes ?
por ahi la creacion del Sub Main() sea algo distinto en vb.net ya que este lo cçoculta completamente al desarrollados, cosa que c# no hace, pero bien si analzias el ultimo link alli explico como habilitarlo
ademas si tienes el codigo puedes poner brekpoint (puntos de interrupcion) para que el codigo se detenga y puedas analalizar que esta haciando, yendo paso a paso, estas opciones de debug estan en el menu "Debug" del VS
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
Hola:
En Proyecto > Propiedades > Aplicacion > Objeto inicial > Sub Main
En una clase, copia esto.Public Shared Sub Main()
'Ejecutamos nuestra aplicación
Application.EnableVisualStyles()
Dim loFrmLogin As New FrmFrmLogin
loFrmLogin.ShowDialog()
Dim Resultado As DialogResult
Resultado = loFrmLogin.DialogResult
If Resultado = DialogResult.OK Then
Dim loForm As New FrmMDI
Application.Run(loForm)
End If
End SubUn saludo desde Bilbo
Carlos- 已标记为答案 Novato23 2010年8月17日 19:34
-
En vbnet 2019
A esta fecha no te servirá la respuesta pero quizás a otros si.
Primero crea un módulo con cualquier nombre:
Module mdConfig
Public Sub AbrirPanel() 'Abre el formulario principal
Dim form As New frmPanel
form.Show()
End Sub
Public Sub CerrarInicio() 'Cierra el formulario de inicio de sesion o login
Dim form As New frmInicio
form.Close()
End Sub
End ModuleLuego en el botón del frmInicio, o del formulario login a como le hayas nombrado, después de comprobar datos del usuario abris el frmPanel llamando a la funcion AbrirPanel que esta en el módulo anterior:
Public Class frmInicio
Private Sub btnIngresar_Click(sender As Object, e As EventArgs) Handles btnIngresar.Click
Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
'AQUI EL CODIGO DE COMPROBACION DEL USUARIO
Call mdConfig.AbrirPanel() 'Llamamos la funcion que abre el frmPanel o formulario principal
'Luego cerramos el frmLogin
Me.Close()
Me.Cursor = System.Windows.Forms.Cursors.Arrow
End Sub
End ClassCon este codigo no te queda oculto, ni abierto, ni detras del frmPanel o principal.
Un saludo desde Nicaragua...