Visual Basic.NET - Abrir y cerrar formularios windows forms

 
Vista:

Abrir y cerrar formularios windows forms

Publicado por Maria (10 intervenciones) el 18/07/2007 16:07:38
Buenas tardes!

Estoy usando un formulario inicial que controla que el nombre de usuario y la contraseña sean válidas.

Al validarlo correctamente se abre el formulario principal con todos los menús y el problema surge cuando quiero cerrar el formulario de validar usuario.

¿Alguien me puede decir que hago mal o como se hace?

Muchas gracias,

Maria.

--- Formulario USUARIO ---------------------
Dim frmPrincipal As New frmPrincipal (Me)
frmPrincipal.ShowDialog()
----------------------------------------------------

------ Formulario PRINCIPAL --------------------
' Sobrecàrrega del constructor
Public Sub New(ByVal frmNom As Form)
MyBase.New()

frmNom.Close()

'El Diseñador de Windows Forms requiere esta llamada.
InitializeComponent()
End Sub
----------------------------------------------------

Si hago esto se me cierra toda la apilcación, snifffffff.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Abrir y cerrar formularios windows forms

Publicado por QWNET (65 intervenciones) el 18/07/2007 17:23:27
'Primero llamas al formulario USUARIO que debe de estar fuera de tu formulario principal y cuando ya le das aceptar en la validacion y si todo pega con los datos ingresados llamas a tu formulario principal pues entoncs intenta hacer esto

me.visible=false 'con esto ocultas el formulario de USUARIO

Dim frmPrincipal As New frmPrincipal
frmPrincipal.ShowDialog()

' y ya en tu formulario principal cuando cierras con END se cierran todas las ventanas

'espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir y cerrar formularios windows forms

Publicado por Harold V. (411 intervenciones) el 18/07/2007 20:53:42
Para un correcto uso de la aplicacion de logeo te pongo este ejemplo, te parecera extenso pero as ies como debe hacerse..........

1 Clase (Login) Encripta los datos que introduce y lo compara con el usuario
almacenado en uan BD mediante Hash.

2 LoginForm Formulario dond eintroduces tu usuario y password a validar.

3 Tu aplicacion que llama al LoginForm (esta aplicacion se abre y llama al loginform, si el
usuario es validado entonces se cierra loginform y
continuas la ejecucion de tu programa de lo
contrario se cierra todo. )

1 Clase Login --------------------------------------------------------------------

Imports System.Security.Cryptography

Public Class Login

Public Sub New()

End Sub

Public Function EncriptPassword(ByVal password As String) As String
If password = "" Then
Return Nothing
Exit Function
End If

Dim bytPassword(), bytEncrypted() As Byte
Dim strEncryptedPassword As String = ""
Dim sec As New SHA1CryptoServiceProvider
Dim ue As New System.Text.UTF8Encoding
Dim PassEncrypted As String = ""
Try
bytPassword = ue.GetBytes(password)
bytEncrypted = sec.ComputeHash(bytPassword)
PassEncrypted = Convert.ToBase64String(bytEncrypted)
Catch exc As Exception
MsgBox("Un error ha ocurrido en la encriptación.")
End Try
Return PassEncrypted
End Function

End Class


2 Login Form ---------------------------------------------------------------------

''estos imports pertenecen a mi capa de datos.....
Imports IntegralServices.BusinessLayer.BusinessObjects
Imports IntegralServices.Facade

Imports System.Text

Public Class LoginForm

Dim Login As New Login
Dim OperadorLogin As OperadoresDS ' este es un dataset (cambialo por el tuyo)
Dim intentos As Short = 0

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click

intentos += 1
If intentos <= 3 Then
Dim password As String = Login.EncriptPassword(Me.txtPassword.Text)
Dim User As String = Me.txtUserName.Text

'Aqui hago una consulta sobre el usuario y su password en un dataset
OperadorLogin = OperadoresFacade.GetOperadoresDS("Usuario='" & Me.txtUserName.Text & "' and Password='" & password & "'", "IdOperador ASC")

'Si coincide pasamos datos al form1 y continua el programa.
If OperadorLogin.Tables(0).Rows.Count > 0 Then
Form1.UserAuthenticated = True
Form1.UserName = Me.txtPassword.Text
'Form1.UserRole = OperadorLogin.Tables(0).Rows(0).Item("IdRol").ToString
Me.Close()
Else
Me.txtPassword.Text = ""
Me.txtUserName.Text = ""
MessageBox.Show("Usuario y Password incorrectos.")
Me.txtUserName.Focus()
End If
Else
MessageBox.Show("Demasiados intentos. Saliendo de la aplicación")
Me.Close()
Exit Sub
End If

End Sub

Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
Me.Close()
End Sub

Private Sub txtUserName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtUserName.TextChanged
If txtUserName.TextLength > 0 And txtPassword.TextLength > 0 Then
OK.Enabled = True
Else
OK.Enabled = False
End If
End Sub

Private Sub txtPassword_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtPassword.TextChanged
If txtUserName.TextLength > 0 And txtPassword.TextLength > 0 Then
OK.Enabled = True
Else
OK.Enabled = False
End If
End Sub
End Class


3 TuAplicacion ---------------------------------------------------------------------

Public Class Form1

Private _UserAuthenticated As Boolean = False
Private _UserName As String = ""
Private _UserRole As String = ""

Public Property UserName() As String
Get
Return _UserName
End Get
Set(ByVal value As String)
_UserName = value
End Set
End Property

Public Property UserRole() As String
Get
Return _UserRole
End Get
Set(ByVal value As String)
_UserRole = value
End Set
End Property

Public Property UserAuthenticated() As Boolean
Get
Return _UserAuthenticated
End Get
Set(ByVal value As Boolean)
_UserAuthenticated = value
End Set
End Property

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Presentamos el for mde validacion
My.Forms.LoginForm.ShowDialog()

If Me.UserAuthenticated Then
'Aqui el usuario esta autenticado
Else
'El usuario no esta autenticado, (despues de los 3 intentos en LoginForm
'nos devolvera UserAuuthenticated=false, cerramos la aplicacion)
Me.Close()
End If

End Sub

End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Harold: Abrir y cerrar formularios windows forms

Publicado por Maria (10 intervenciones) el 19/07/2007 15:22:40
Hola de nuevo!

No me ha parecido extenso, al contrario me ha sido muy útil porque funciona.

Sólo una pregunta más:

- Me podrías pasar también el desencriptar de la clase Login?

Muchas gracias de nuevo,

Maria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir y cerrar formularios windows forms

Publicado por Maria (10 intervenciones) el 18/07/2007 20:57:30
Hola,

Esta opción es la que tenía pero no me convencía porque si haces lo de me.visible = false, no se ve el formulario en pantalla pero si que queda minimizada en la barra de abajo de windows.

Si le pones la opción de que no se vea abajo (creo que es showintaskbar), si el usuario sin querer da fuera del formulario luego no puede volver y tiene que volver a ejecutar el aplicativo, y luego salen dos pantallas iguales.

Pero bueno, mientras tanto usaré esto.

Muchas gracias,

veo que tu siempre contestas a todos los foros de visual.net, muchas gracias, eres nuestro salvador.

Maria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir y cerrar formularios windows forms

Publicado por Hugin (83 intervenciones) el 18/07/2007 21:07:06
Maria lo que tienes que hacer es lo siguiente.
al formulario MDI ponlo como inico en le proyecto
luego en el evento load del MDI
pones esto

Dim frm As New LoginForm1
frm.Owner = Me
frm.ShowDialog()

alli estas lanzando el formulario de login
mientras no sea el usuario correcto no podra acceder al mdi principal

y en le formulario del lokin en el boton aceptar en el evento click

If Me.UsernameTextBox.Text = "ADMIN" And Me.PasswordTextBox.Text = "ADMIN" Then
MsgBox("Bienvenido " & Me.UsernameTextBox.Text, MsgBoxStyle.Information, "Sistema XXX")
Me.Close()
Else
MsgBox("El Usuario " & Me.UsernameTextBox.Text & " no esta Registrado", MsgBoxStyle.Information, "Sistema XXX")
End
End If

haces la validacion y si es correcto cierras el formulario del login
y lanzas el mdi.

ah si kieres que le mdi no este detras el login solo cambiale la propuedad WindowSatate del MDI a Normal y asi cuando ejecutes te saldra el FormLogin sin nada detras.

Pero si kieres que se muestre el MDI como fondo cambias la propiedad WindowSatate a maximize

Espero te sirva chao ah te lo envio a tu correo el ejemplo esta en VB.2005
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir y cerrar formularios windows forms

Publicado por Maria (10 intervenciones) el 19/07/2007 15:24:11
Muchas gracias Hugin pero prové primero la versión de Harold y funciona correctamente.

Igualmente muchas gracias,

Maria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir y cerrar formularios windows forms

Publicado por JonathanRivera (1 intervención) el 08/02/2014 09:20:06
hola apenas empiezo en esto de visual studio yo estaba mas apegado VB6 (pero hace ya un tiempo que no programo nada y no recuerdo mucho) hay muchas cosas que comprendo muy poco y otras que realmente no comprendo nada así que podrías explicarme en que consiste este parte

Dim frm As New LoginForm1
frm.Owner = Me
frm.ShowDialog()

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir y cerrar formularios windows forms

Publicado por test (1 intervención) el 06/01/2015 23:42:40
funcionó bien !
lo mejor fue que se puede quitar la pantalla MDI de fondo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir y cerrar formularios windows forms

Publicado por valerlia  (1 intervención) el 25/06/2009 18:04:53
un centro numerico es un numero que separa euna lista de numeros enteros (comenzando en 1)en dos grupos de numeros, cuyas sumas son iguales. el primer centro numerico es de 6, el cual separa la lista (1a 8)en los grupos:(1;2;3;4;5) y (7;8) cuyas sumas son ambas iguales a 15. El segundo centro numerico es el 35, el cual se para la lista ( 1 a 49 ) en los grupos: (1a 34) y (36 a 49) cuyas sumas son ambas iguales a 595.se pide elaborar una aplicacion que calcule los centros numerico en 1 y N.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Abrir y cerrar formularios windows forms

Publicado por JOse (1 intervención) el 28/02/2014 08:12:35
3 por voto


Proyecto -> Propiedades, cambie el modo "apagado" a "Al cerrar el último formulario":
Esto le permitirá a Close () del formulario de acceso sin causar toda la aplicación para salir.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar