Buscar en el blog

lunes, 1 de septiembre de 2014

Bueno amigos una vez que ya tenemos todos los recursos que por el momento vamosa a necesitar para comenzar a realizar nuestra aplicación, vamosa a empezar ya a programar nuestros formularios y comenzaremos por el principio. El primero de todos será el formulario de Login o inicio de sesión.

Fijaros que tenemos un tooltip agregado a nuestro formulario. Esto nos permitira mostrar información acerca de diversos comtroles. Lo primero que vamos a hacer es crear un sub privado (fuera del evento load del formulario, pero dentro de la clase del formulario, de forma que el tooltip muestre información acerca de los botones de nuestro formulario. Lo haremos de la siguiente manera:

'Procedimiento que mueestra información sobre el botón seleccionado
    Private Sub InfoLogin()
        Me.ToolTip1.SetToolTip(Me.CmbRegistrarse, "Registrar nuevo usuario")
        Me.ToolTip1.SetToolTip(Me.CmbIniciarSesion, "Incia sesión en la aplicación")
        Me.ToolTip1.SetToolTip(Me.CmbCancelar, "Cierra la aplicación")
    End Sub

Después utilizaremos el evento load de forma que a la hora de cargar el formulario, muestra esa información, además de la imagen de fondo y el icono de nuestra apliación.

Private Sub Frm_Login_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'Le colocamos el texto que queramos a nuestro formulario.
        Me.Text = "Inicio de sesión de usuario - " & Now.Date
        'Le colocamos el icono
        Me.Icon = My.Resources.Logo
        'Le colocamos la imagen de fondo a nuestro formulario
        Me.BackgroundImage = My.Resources.fondo
        'Ajustamos la imagen al formulario (esto tambien lo podemos hacer en tiempo de diseño cambiando
        'su propiendad ImageLayout a Stretch)
        Me.BackgroundImageLayout = ImageLayout.Stretch
        'Aquí llamamos al procedimiento privado que creamos y que nos trae la información de cada botón
        Call InfoLogin()
    End Sub 

Ahora vamos a programar el botón de inicio de sesión. Fijaros como lo vamosa a hacer. Debemos declarar tres variables.dos que almacenaran nombre y identificación del usuario y otra que almacenara una nueva instancia de la clase que hemos creado (ConexBD). Comencemos con el código. Después de ello, en le siguiente artículo continuaremos.

Dim MisDatos As New ConexBD 'Almacenamos una nueva instancia de la clase ConexBd en la variable mis datos
    Public Nombre As String 'Esta variable almacenara el nombre del usuario que inicia sesion
    Public IdUsuario As Long 'Esta variable almacenará el código de identificación del usuario
 'Y ahora el botón de inicio de sesión llevará el siguiente código:

Private Sub CmbIniciarSesion_Click(sender As Object, e As EventArgs) Handles CmbIniciarSesion.Click

        If TxtUsuario.Text = "" Then 'Si el textbox usuario esta vacio, mostramos un mensaje
            MsgBox("Debe introducir su nombre de usuario para poder inicair sesión en la aplicación" _
                   , vbCritical, "Introduzca un nombre de usuario")
            TxtUsuario.Focus() 'devolvemos el cursor al textbox
            Exit Sub 'dejamos de ejecutar codigo
        ElseIf TxtClave.Text = "" Then 'Para el txtclave hacemos lo mismo
            MsgBox("Debe introducir su contraseña para poder iniciar sesión en la aplicacion" _
                , vbCritical, "Introduzca su clave de usuario")
            TxtClave.Focus() 'Devolvemos el cursor al textbox clave
            Exit Sub
        End If

        Try
            'Si los campos tienen datos establecemos la condicion
            'Si la funcion BuscarRegistros de la clase ConexBD, que esta almacenada en la variable MisDatos, devuelve true
            'es que se encontraron datos
            If MisDatos.BuscarRegistros("Tb_Usuarios", "NombreUsuario='" & TxtUsuario.Text & "' And ClaveUsuario ='" & TxtClave.Text & "'") Then
                'si encuentra datos, almacenamos en la variables que tenemos dentro de la clase, los valores
                'de las columnas ID y Nombre real del usuario que inicia sesión
                IdUsuario = MisDatos.DT.Rows(0).Item(0).ToString
                Nombre = MisDatos.DT.Rows(0).Item(1).ToString
                Me.Hide() 'Ocultamos el formulario de inicio de sesion
                Frm_Principal.Show() 'Y mostramos el formulario principal
            Else 'En caso contrario, mostramos un mensaje y limpiamos los textbox
                MsgBox("El usuario o la contraseña de inicio de sesión no existen o son incorrectos", vbCritical, "Inicio de sesión fallida")
                TxtUsuario.Clear()
                TxtClave.Clear()
                TxtUsuario.Focus() 'Y devolvemos el cursor al textbox correspondiente
            End If
        Catch ex As Exception
            MsgBox("Se ha producido un error inesperado en el inicio de sesión" & vbCr & ex.ToString, vbCritical, "Error de inicio de sesión")
        End Try
    End Sub

'Este es el botón más complicado de programar en este formulario. Vamos a ver el resto de botones como són, salir, o Registrarse:

Private Sub Frm_Login_Activated(sender As Object, e As EventArgs) Handles Me.Activated
        'Cuando se active el formulario hacemos que el cursor aparezca en el textbox del usuario
        TxtUsuario.Focus()
    End Sub

Private Sub CmbCancelar_Click(sender As Object, e As EventArgs) Handles CmbCancelar.Click
        'Salimos del formulario
        Me.Close()
    End Sub

    Private Sub CmbRegistrarse_Click(sender As Object, e As EventArgs) Handles CmbRegistrarse.Click
        'Mostramos el formulario de registro.
        Frm_Registro_Usuarios.ShowDialog()
    End Sub

    Private Sub TxtClave_TextChanged(sender As Object, e As EventArgs) Handles TxtClave.TextChanged
        'Al dar Enter con el cursor dentro de este textbox, se ejecuta el código del boton para intentar entrar en la aplicación
        AcceptButton = CmbIniciarSesion
    End Sub

1 comentarios:

 
Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies. OK | Más información