none
Como puedo cerrar un form de login al abrir el form principal? RRS feed

  • 问题

  • 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

    2010年8月16日 21:01

答案

  • 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 Sub

    Un saludo desde Bilbo
    Carlos

    • 已标记为答案 Novato23 2010年8月17日 19:34
    2010年8月17日 7:14

全部回复

  • 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
    2010年8月16日 21:03
  • 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

     

    2010年8月16日 21:06
  • 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

    Visit http://www.melvinsofts.com

    2010年8月17日 0:55
  • 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

    Visit http://www.melvinsofts.com

    2010年8月17日 2:35
  • 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
    2010年8月17日 2:50
  • 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

     

    2010年8月17日 4:29

  • 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
    2010年8月17日 4:37
  • La parte que no entiendo es la de metodo main no se  ni siquiera como como crearlo y no pude ver todo ya que yo tengo instalado el 2005
    2010年8月17日 5:20
  • 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 Sub

    Un saludo desde Bilbo
    Carlos

    • 已标记为答案 Novato23 2010年8月17日 19:34
    2010年8月17日 7:14
  • 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 Module

    Luego 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 Class

    Con este codigo no te queda oculto, ni abierto, ni detras del frmPanel o principal.

    Un saludo desde Nicaragua...

    2022年11月8日 21:35