Personalizando controles en Microsoft Visual Basic .NET

 

Fecha: 26/Sep/2005 (26/09/05)
Autor: Lic. Giovanni Cuadra Reyes
AmericanCollege IT Manager
Email: giovanni_cuadra@hotmail.com
            gcuadra@americancollege.edu.ni
          Nicasoft logo
!!!Tecnología de la Programación!!!
Managua, Nicaragua.

 


 

Introducción

Cuando obtuve la versión 3.0 de Visual Basic allá por el año de 1995, gracias a mi buen amigo Eugenio Maltéz, hace ya muchos años, siempre me pregunte por qué Microsoft no sacaba al mercado una herramienta que permitiera diseñar componentes VBX y reutilizarlos en el mismo lenguaje de programación. Pero no fue hasta en 1998 aproximadamente, cuando por primera vez Microsoft sacó al mercado gratuitamente una versión de Visual Basic 5.0 denominada Microsoft Visual Basic Create Control Edition, que permitía el desarrollo de componentes reutilizables y a la vez mejorar los ya existentes,  fue algo espectacular en esa época. Y fue en este mismo sitio donde lo descargue por primera vez, y ese fue el comienzo de una era de éxitos para Visual Basic, ya que los desarrolladores ya contábamos con tales características dentro de la misma herramienta de programación. Desde ese entonces hasta la fecha esas mismas características han evolucionado de una forma tan poderosa que hoy en día el desarrollo de componentes reutilizables desde Visual Basic .NET no tiene nada que envidiarle al resto de lenguajes de programación.

Este artículo esta basado en el desarrollo de componentes reutilizables y como estos pueden minimizar de una forma sorprendente grandes cantidades de código en una aplicación. Código que en la mayoría de los casos puede ser el mismo en centenares de formularios Windows.

Qué son los componentes en Visual Basic .NET

Visual Basic .NET permite la creación de componentes que pueden ser utilizados en aplicaciones de Windows, aplicaciones de consola, de Web. Los componentes no son más que clases que trabajan de una forma muy eficiente, no son elementos visuales y es muy fácil incorporarles características a elementos existentes dentro del mismo ambiente de desarrollo.

Los nuevos elementos de desarrollo para las aplicaciones RAD soportan el diseño de controles no visuales, tan fácil como crear un formulario. Únicamente se requiere  heredar de un componente existente las características necesarias que requiere el proyecto o bien agregar otros componentes para diseñar o construir las funcionalidades que se requieren.

Por ejemplo, la mayoría de las aplicaciones requieren sistemas de validación donde puedan enviarle al usuario un aviso cuando los datos son requeridos y otro centenar de características que pueden ser incorporadas dentro de los mismos componentes y esto permite no repetir el código de un formulario en otro. El fragmente de código que mostraré a continuación esta basado en agregarles nuevas características a con control TextBox, entre ellas una forma sencilla de validación y programar la tecla Enter cada vez que el usuario quiera ir al siguiente control dentro del formulario.

A continuación muestro un ejemplo de lo anteriormente expuesto:

La figura 1.0 Muestra un control TextBox mejorado.

Primeramente se declaran dos espacios de nombres, el primero permite acceso a la clase de ErrorProvider, el cual nos sirve como elemento de validación, y el cual se puede observar en el método sobre escrito OnValidating. Esas pequeñas líneas de código permite enviarle al usuario mensajes si el control no cumple con la condición.

El segundo espacio de nombres, nos proporciona acceso a la clase denominado pulsación de teclas automáticas, el cual nos permite que cada vez que el usuario haga un Enter el cursor salte al siguiente control del formulario. Podemos observar el método sobre escrito denominado OnKeyPress, donde le enviamos la pulsación de la tecla TAB, esta es una forma muy antigua o truco pero que puede seguir siendo utilizado, únicamente modernizándolo en VB.NET.

Creando componentes en Microsoft Visual Basic .NET

En el diseñador, aparece un el menú de proyectos la opción agregar componentes. Se ejecuta esta opción y a continuación se visualiza una pantalla el cual solicita el nombre del componente a insertar en el proyecto. A continuación muestro el menú para ejecutar la opción :

 

La figura 2.0 Muestra la opción que permite agregar un componente al proyecto.

 

La figura 3.0 Muestra las plantilla para agregar componentes al proyecto.

 

Implementando una solución con Visual Basic .NET

A continuación muestro un ejemplo muy sencillo utilizando un componente no visual. Los siguientes requisitos serán necesarios:

 

A continuación muestro el código del componente, el cual su objetivo principal es el mejorar aun más las características de uso de un control TextBox:

Imports ErrP = System.Windows.Forms.ErrorProvider

Imports SendKey = System.Windows.Forms.SendKeys

Public Class TextBoxUser

Inherits System.Windows.Forms.TextBox

Dim ErrorP As New ErrP

Protected Overrides Sub OnValidating(ByVal e As System.ComponentModel.CancelEventArgs)

If Me.Text.Length = 0 Then

ErrorP.SetError(Me, "Un dato es requerido aquí")

Me.Focus()

Else

ErrorP.SetError(Me, "")

End If

End Sub

Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)

If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then

e.Handled = True

SendKey.Send("{tab}")

End If

End Sub

End Class

 

Una vez creado el componente se requiere crear una instancia de este, al control que se utilizará en el formulario, aplicación o proyecto, para esto se requiere hacer lo siguiente:

A continuación muestro en código el antes y después del procedimientos especificado anteriormente:

 

ANTES DE HACER LOS CAMBIOS:

Friend WithEvents txtUno As System.Windows.Forms.TextBox

Friend WithEvents txtDos As System.Windows.Forms.TextBox

Me.txtUno = New System.Windows.Forms.TextBox

Me.txtDos = New System.Windows.Forms.TextBox

 

DESPÚES DE HACER LOS CAMBIOS:

Friend WithEvents txtUno As TextBoxUser

Friend WithEvents txtDos As TextBoxUser

Me.txtUno = New  TextBoxUser

Me.txtDos = New  TextBoxUser

 

A continuación muestro el formulario al ejecutar el proyecto dentro de la consola de Visual Studio:

 

La figura 4.0 Muestra la aplicación en ejecución.

 

Como se observa el ejemplo anterior si no se ingresa información en ninguno de los controles TextBox el método OnValidating se dispara e informa al usuario con un estilo de mensajes como el observado en la figura anterior. En este caso no se requiere del viejo y conocido MSGBOX, ya que este es otro estilo nuevo implementado en VB.NET.

Por último como se podrá observar en la siguiente figura el método OnValidating de ambos controles TextBox incrustados dentro del formulario, no tienen en lo absoluto código y esto aun lo hace más interesante, ya que el componente desarrollado es un elemento genérico que se puede utilizar en cualquier proyecto de trabajo.

 

La figura 5.0 Muestra un evento de los controles TextBox, sin código alguno.

 

Conclusiones

Una generación de nuevas herramientas de programación han dotado de nuevas capacidades a una oleada de aplicaciones en este recién y estrenado siglo XXI. Será necesario un mayor estudio de investigación para explorar que nos preparan las nuevas tendencias tecnológicas para el futuro.

La clave del éxito para este nuevo milenio se encuentra en el uso de la tecnología del futuro. Tecnología  que resulta hoy en día tan importante, como nunca lo ha sido jamás.

Giovanni Cuadra.


Fichero con el código de ejemplo: gcuadra_Componentes.zip - Tamaño 21 KB


ir al índice