Cursos subvencionados para trabajadores
Realiza el curso gratis a través de tu empresa.
Cursos SubvencionadosVolvamos a revisar algunos elementos más teóricos del código que tenemos en pantalla, vamos explicar el porqué del resto de las líneas de código. Así iremos conociendo términos que luego en temas posteriores acabaremos de encajar y entender. Partimos de nuestro código de ejemplo:
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
MsgBox("Hola " & TextBox1.Text)
End Sub
End Class
Sabemos que este es todo el código del formulario y del programa...sólo esto?
Pues si y no, digamos que el código que se ejecuta si que está visible pero el
código que define al formulario está oculto. Este código generado por el
diseñador o IDE está oculto por una técnica que se llama Esquematización u
Outlining. Esta técnica permite definir zonas y regiones de código que pueden
ser expandidas o contraídas desde el propio editor, haciendo clic en los
indicadores de código:

En nuestro ejemplo el diseñador ha creado una zona con el nombre "Código generado por el Diseñador de Windows Forms". Si pulsamos en el símbolo mas vemos como se expande esa zona y si volvemos a pulsar se contrae. Por curiosidad haz lo siguiente: deja el código contraído y márcalo para copiar el texto, abre el bloc de notas (Notepad) y pega ese texto... resultado se ha copiado también el código oculto.
La verdad es que nos puede sorprender tanto código para este simple programa, sobre todo para los antiguos programadores que os podréis sentir u poco desconcertados al intentar leer el código. Pero no es tan complicado, aunque aquí lo voy a explicar no es necesario que lo entiendas completamente, sirva como un avance de la sintaxis y código del mundo .NET. (pero presta la máxima atención posible, merece la pena invertir tiempo en esta explicación)
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de Visual Basic.NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Vamos a realizar un pequeño análisis de este código oculto que añade .NET de forma automática. Veremos su aparente complejidad, sobre todo para los programadores de Visual Basic 6 que en lugar de encontrar con algo mas sencillo en esta versión de VB se encuentran con todo esto... tranquilos no es tanta la diferencia sigamos...
Vamos a intentar explicar qué es todo el código oculto que tenemos en el IDE. Es necesario empezar a familiarizarnos con estas palabras clave y conceptos para comenzar a comprender un poco el funcionamiento de .NET
En este código tenemos la posibilidad de crear el formulario a partir de código, es decir sin necesidad del entorno anterior de controles-ratón-formulario. Podemos por código decirle que en tal posición va un cuadro de texto con unas propiedades determinadas, un botón... esto es algo que no existía en versiones anteriores ya que en VB6 el código de creación del formulario no era accesible por el programador. Además si este código lo crea automáticamente el diseñador... ¿de qué tenemos que preocuparnos? él lo genera por nosotros. Aun así veamos las partes más interesantes:
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de Visual Basic.NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Todos los formularios son objetos y el código de un objeto se escribe con una clase. Recordemos un poco estos términos, un objeto es cada uno de los elementos de programación de que disponemos: formularios, botones, bases de datos, ... y una clase es digamos la plantilla para crear ese elemento. Es decir con la clase "botón" podemos crear y manipular botones.
Seguimos, como el formulario es una clase y debemos crear este formulario hay que utilizar las palabras clave Class y End Class y heredar esta clase de la clase Form con la palabra clave Inherits. Tranquilo... esto significa que tenemos que crear un formulario nuevo, ya sabes que VB.NET le pone un nombre por defecto Form1 y para que el programa sepa que esto es un formulario le decimos que lo "herede" de la clase Form, es decir, utiliza la plantilla Form para crear un formulario para mi programa que se va a llamar Form1. Finalmente la clase Form pertenece al espacio de nombres (recuerda los Namespace del capítulo 1) System.Windows.Forms y contiene todas las clases relacionadas con el formulario y controles. Veamos ahora el código:
Public Class Form1
Inherits System.Windows.Forms.Form
...
...
End Class
Que significa crea un formulario llamado Form1 y que herede las características o créalo a partir de la clase Form. VB sabe qué es la clase Form así que creará un elemento Form1 a partir de las especificaciones que tiene para crear objetos de tipo Form o escrito entero: System.Windows.Forms.Form
| Nota: El "spacename" mas importante
dijimos en el primer capítulo que era System. De elle parten otros adecuados
a diferentes acciones: acceso a bases de datos System.Data, para dibujar: System.Drawing,
para trabajar con los elementos de Windows: System.Windows y de ahí uno de
los componentes de los entornos que son los formularios:
System.Windows.Forms. Vale, este spacename contiene todos los elementos de
los formularios: cuadros de texto, botones, lista, .... y obviamente el
propio formulario así que: Crea un formulario a partir del objeto Form del spacename System.Windows.Forms:
|
¿Que tal.. mejor? Pues si lo habéis entendido hemos avanzado más de lo que parece, ánimo. Por el hecho de establecer una relación de herencia entre Form y Form1, toda la funcionalidad de la clase Form (clase padre o base) pasa a la nueva clase Form1 (clase hija o derivada) a la que podemos añadir nuevas características. Sigamos con el código...
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de Visual Basic.NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Todas las clases deben tener un método constructor que es el primero que se ejecuta cuando es instanciado un objeto de la clase y dentro se escribe el código para inicializar el objeto.
Ahora veremos que son estos términos. El método constructor es la propia acción de crear el objeto a partir de su clase. Es decir creamos el coche (objeto) a partir de su definición (clase). El termino instanciado equivale a hacer referencia al objeto. Es decir decimos que un objeto es instanciado cuando hacemos uso de él, por lo tanto, debe crearse si no lo está, el método constructor para una clase en Vb.NET es New(), es decir para crear un nuevo objeto utilizaremos el método New:
Public Sub New()
MyBase.New()
'El Diseñador de Windows Forms requiere esta llamada.
InitializeComponent()
'Agregar cualquier inicialización después de la llamada a InitializeComponent()
End Sub
Puesto que nuestra clase Form1 (formulario del programa de ejemplo) hereda de la clase Form, en el método constructor de Form1 llamamos al método constructor de la clase base com Mybase.New(). La palabra clave Mybase representa al objeto de la clase padre. Finalmente iniciamos el componente con InitializeComponent que inicia los componentes del formulario: sus propiedades, controles, ...
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de Visual Basic.NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
El tercer paso es la creación y configuración del formulario que creamos con el ratón en el diseñador gráfico. Aquí tenemos los controles que insertamos: botones, cuadro de texto y etiqueta, veamos como lo gestiona esta parte del código.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Label1 = New System.Windows.Forms.Label
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Button1 = New System.Windows.Forms.Button
Me.cmdcerrar = New System.Windows.Forms.Button
Me.SuspendLayout()
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(16, 32)
Me.Label1.Name = "Label1"
Me.Label1.TabIndex = 0
Me.Label1.Text = "Nombre"
Si vemos la primera parte lo que hace es crear los controles que vamos a utilizar en el formulario. Y los crea a partir de su clase, por ejemplo: Me.Label1 = New System.Windows.Forms.Label. Sabemos que la palabra clave ME hace referencia al propio formulario luego crea en este formulario un elemento que se va a llamar Label1 y lo creas a partir de la plantilla o clase System.Windows.Forms.Label es decir te vas a comportar como una etiqueta de texto. Fíjate en el último control que creamos cmdcerrar, puesto que le pusimos ese nombre a la hora de crear el formulario, para crearlo Vb.NET debe hacer: crea en este formulario un control que se llame CMDCERRAR y lo vas a crear a partir de la plantilla System.Windows.Forms.Button por lo tanto será un botón. Hasta ahora bastante lógico ¿no? Vale una vez creados tenemos que ponerles todas las propiedades que le ha asignado el programador: color, etiqueta de texto, tipo de letra... de eso se encargan las siguientes instrucciones por ejemplo Me.Label1.Text = "Nombre" le asigna la cadena de texto "Nombre" a una etiqueta que se llama Label1, creada arriba.
Nota: Debemos hacer caso especial a
la advertencia que nos pone el código:
Es decir no debemos modificar este código que incluye el diseñador. |
Como hemos dicho antes dentro del código de InitializeComponent la palabra clave Me nos permite referirnos a cualquier elemento del formulario actual desde dentro del propio formulario. Para terminar decir que las instrucciones Me.SuspendLayout() y Me.ResumeLayout(False) que están entre la asignación de las propiedades de los controles lo que permiten es detener por un momento la visualización de los elementos o controles en pantalla para evitar efectos raros en la visualización. Digamos que se pintan ocultos con todas sus propiedades y luego su hacen todos visibles a la vez, así evitamos problemas en su visualización.
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de Visual Basic.NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Cuando ya no necesitemos el formulario debemos liberar sus recursos (un eterno problema en Windows, los programas cogen recursos y luego no los liberan correctamente). El método Dispose() , indicar a VB.NET que el formulario ya no se va a utilizar y que todos los recursos que ha estado usando quedan a disposición del entorno para que el recolector de basura de la plataforma, los recupere cuando considere necesario. Esto se hace para el formulario y para sus elementos:
'Form reemplaza a Dispose para limpiar la lista de componentes.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
Y de momento es suficiente. Sólo quería que vieses que podemos declarar objetos de un determinado tipo, luego los creo y por fin después de utilizarlos los debo eliminar. También hemos visto que ese código oculto contiene toda la información necesaria para crear el formulario con sus controles: botones, etiquetas, ... y con todas las propiedades de éstos.
Ahora vamos a grabar el proyecto para ver de qué partes se compone...
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de Visual Basic.NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Al crear un proyecto éste crea unas carpeta con varios ficheros que todos conforman el proyecto. En nuestro ejemplo:

Los programadores de versiones anteriores habréis observado que no se parece prácticamente en nada en esta versión .NET. Veamos un poco los ficheros que lo componen según su extensión:

En la carpeta bin del proyecto se genera el fichero ejecutable que es lo único que necesitamos para ejecutar nuestro programa en otros equipos.
Y con esto finalizamos esta pequeña introducción a una aplicación Windows realizada con .NET . Esta explicación nos ha servido para tener una primera toma de contacto seria con la base de .Net Framework que son las clases y su uso. De hecho, una vez entendido es algo realmente sencillo y fácil de utilizar, así que esto nos ha acercado un poco a su filosofía. Para descansar de esta teoría vamos a conocer y practicar un poco con el IDE y los formularios...
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de Visual Basic.NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Copyright 2008© ADRInfor S.L. Logroño | Tel: 941250116 Fax: 941236805 | Email | Politica de Privacidad