Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Laboratorio Windows Forms .Net - 3.
Laboratorio Windows Forms .Net - 3.
Microsoft Partner
El contenido de este laboratorio tiene todos los derechos reservados, por lo tanto no se
puede reproducir, transcribir, almacenar a un sistema de recuperación o de alteración,
asimismo la traducción a otro idioma de ninguna forma o por ningún medio mecánico,
manual, electrónico, magnético, óptico o de otro modo.
3 WINDOWS FORMS
Una vez creado el objeto se puede hacer uso de sus métodos y propiedades.
Ejemplo:
Acá se muestra que el objeto solo es referenciado por lo tanto se producirá una excepción que el objeto no fue
instanciado.
Como vimos en los laboratorios anteriores, los tipos de datos se dividen en dos grupos: tipos por valor y
tipos por referencia. Los tipos por referencia realmente son clases, de la cuales debemos crear una
instancia para poder usarlas, cuando instanciamos una clase esta se crea en la parte lejana de la memoria
llamada heap, y las variables que la contienen solo hacen una referencia a la dirección de su ubicación en la
que la CLR ha almacenado el objeto recién creado.
En el .NET Framework la mayor parte a usar será una clase, la creación de formularios, la creación de
módulos, y las clases mismas etc., toda estas se grabaran con la extensión vb si usamos como lenguaje
predeterminado Visual Basic, para C# la extensión sera .cs.
Las clases existentes en la biblioteca de clases del .NET Framework, derivan de una clase principal llamada
object, es decir así lo indiquemos o no cualquier clase que definamos o usemos tendrá el comportamiento
Todas las clases de .NET se derivan de la clase Object, es decir, lo indiquemos o no, cualquier clase que
definamos tendrá el comportamiento heredado de esa clase. El uso de la clase Object como base del resto de
las clases de .NET es la única excepción a la herencia simple soportada por .NET, ya que de forma implícita,
todas las clases de .NET se derivan de la clase Object independientemente de que estén derivadas de
cualquier otra.
De los miembros que tiene la clase Object debemos resaltar el método ToString, este método está pensado
para devolver una representación en formato cadena de un objeto.
En Visual Basic 2005, todo el código que queramos escribir, lo tendremos que hacer en un fichero con la
extensión .vb, dentro de ese fichero es donde escribiremos nuestro código, el cual, tal como dijimos
anteriormente siempre estará incluido dentro de una clase, aunque un fichero de código de VB puede contener
una o más clases, es decir, no está limitado a una clase por fichero.
En Visual Basic 2005 las clases se definen usando la palabra clave Class seguida del nombre de la clase, esa
definición acaba indicándolo con End Class.
Los campos
Son variables usadas para mantener los datos que la clase manipulará.
Los métodos
Son las acciones que la clase puede realizar, normalmente esas acciones serán sobre los datos que
contiene. Dependiendo de que el método devuelva o no un valor, podemos usar métodos de tipo
Function o de tipo Sub respectivamente.
Las propiedades
Son las "características" de las clases y la forma de acceder "públicamente" a los datos que contiene.
Por ejemplo, podemos considerar que el nombre y los apellidos de un cliente son dos características
del cliente.
Los eventos
Son mensajes que la clase puede enviar para informar que algo está ocurriendo en la clase.
End Set
End Property
End Class
Uso de la clase:
La sobrecarga de funciones (tanto para funciones como para procedimientos Sub), es una característica que
nos permite tener una misma función con diferentes tipos de parámetros, ya sea en número o en tipo.
Supongamos que queremos tener dos funciones (o más) que nos permitan hacer operaciones con diferentes
tipos de datos, y que, según el tipo de datos usado, el valor que devuelva sea de ese mismo tipo.
Sub VerificarDatos()
'Codigo a ejecutar
'.....
'.......................
End Sub
Para iniciar y cerrar una aplicación, la biblioteca de clases del .NET Framework proporciona la clase
Application, esta clase contiene dos métodos principales aparte de métodos para gestionar una
aplicación
A nivel Aplicación.
Run
Invoca el método Application.Run para iniciar la aplicación.
Exit
Para cerrar una aplicación, invocamos al método Application.Exit
A nivel Formulario.
Show
Llama al formulario indicado para ser mostrado:
Close
Destruye el formulario al que hace referencia.
Las excepciones en Visual Basic 2005 las podemos controlar usando las instrucciones Try / Catch / Finally.,
estas instrucciones realmente son bloques de instrucciones, al estilo de If / Else
Cuando queramos controlar una parte del código que puede producir un error lo incluimos dentro del bloque
Try, si se produce un error, éste lo podemos detectar en el bloque Catch, por último, independientemente de
que se produzca o no una excepción, podemos ejecutar el código que incluyamos en el bloque Finally, para
indicar el final del bloque de control de excepciones lo haremos con End Try.
Cuando creamos una estructura de control de excepciones no estamos obligados a usar los tres bloques,
aunque el primero: Try si es necesario, ya que es el que le indica al compilador que tenemos intención de
controlar los errores que se produzcan. Por tanto podemos crear un "manejador" de excepciones usando los
tres bloques, usando Try y Catch o usando Try y Finally.
Try
En este bloque incluiremos el código en el que queremos comprobar los errores, el código a usar será
un código normal, es decir, no tenemos que hacer nada en especial, ya que en el momento que se
produzca el error se usará (si hay) el código del bloque Catch.
Catch
Si se produce una excepción, ésta la capturamos en un bloque Catch. En el bloque Catch podemos
indicar que tipo de excepción queremos capturar, para ello usaremos una variable de tipo Exception,
la cual pude ser del tipo de error específico que queremos controlar o de un tipo genérico.
Finally
En este bloque podemos indicar las instrucciones que queremos que se ejecuten, se produzca o no una
excepción. De esta forma nos aseguramos de que siempre se ejecutará un código, por ejemplo para
liberar recursos, se haya producido un error o no.
Ejemplo
Dim x, y, r As Integer
Try
x = 5
y = 6
r = x / 6
Console.WriteLine("El resultado es {0}", r)
Catch ex As ArithmeticException When y = 0
Console.WriteLine("Sucedio un error Aritmetico")
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
El control TableLayoutPanel organiza su contenido en una cuadrícula. Puesto que el diseño se realiza en
tiempo de diseño y en tiempo de ejecución, puede cambiar dinámicamente a medida que cambie el entorno
de la aplicación. Esto ofrece a los controles del panel la posibilidad de cambiar de tamaño proporcionalmente,
por lo que puede responder a cambios como el cambio de tamaño del control principal o el cambio de la
longitud del texto debido a la adaptación.
En síntesis podríamos decir que representa un panel que dispone su contenido dinámicamente en una
cuadrícula compuesta por filas y columnas.
RowSpan
Expande un control ubicado en una determinada celda a tantas filas se le indique.
ColumnSpan
Expande un control ubicado en una determinada celda a tantas columnas se le indique.
Ejemplo de Diseño:
Laboratorio 04:
Empecemos a crear una aplicación para demostrar el uso de las funciones estudiadas:
I.- Crear el siguiente formulario con el nombre frmLogin, con el siguiente diseño:
TxtUsuario: MaxLength = 5
CharacterCasing= Upper
TxtClave: MaxLength = 5
PasswordChar = *
II.- Una vez realizado esto, dentro del modulo modGeneral, crear un método con el nombre “Sub Main”.
Sub Main()
''''''''''''''''''''''
'Ejecución de procesos.
'...
'.......
''''''''''''''''''''''
frmLogin.Show()
Application.Run()
End Sub
Para indicarle a nuestro proyecto que al iniciarse se ejecute nuestro método “Sub Main”, en propiedades del
proyecto debemos indicarle desactivando la opción “Enable application framework”:
II.- Crear el siguiente formulario con el nombre frmClientes y con el siguiente diseño.
Control MaskedTextBox
Control DateTimePicker
III.- Aprendiendo a configurar la tabulación de nuestros controles, desde el menú Ver seleccionamos Orden de
Tabulación.
Luego la visualización del formulario quedara como sigue, dándole un Click comenzaremos a configurarlo el
orden de tabulación.
IV.- Ahora crearemos un modulo con el nombre modGeneral, dentro de él tendremos que crear al as
siguientes variables:
Enum TipoCliente
Mayorista
Nuevo
Moroso
End Enum
End Function
V.- Ahora en el formulario frmLogin debemos escribir lo siguiente dentro del botón Aceptar.
Application.Exit()
VII.- Crear una clase al proyecto con el nombre Clientes, y dentro de el definir las siguientes variables, como
se muestra en el siguiente grafico:
End Class
End Sub
IX.- Finalmente en la clase agregamos un último procedimiento sobrecargado con en el mismo nombre del
procedimiento anterior en el punto VIII:
X.- Volviendo al formulario frmClientes, agregar lo siguiente en el botón Agregar y probar el formulario.
_Clientes.AgregaClientes(Me.lstClientes)
Realizar lo siguiente:
I.- Cuando se seleccione la opción “Otros” de “Tipo de clientes” se debe de usar el procedimiento
sobrecargado del punto IX: