Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tutorial Vamos A Ver La Programación Orientada A Objetos
Tutorial Vamos A Ver La Programación Orientada A Objetos
NET, con
la utilizacin y creacin de clases, de una forma mas o menos, sencilla. Recuerda descargar
Visual Basic .NET y ver el tutorial bsico de Visual Basic .NET antes de empezar.
Primero har una explicacion sobre la POO , y veremos un poco lo bsico. Luego empezaremos a
usar lo aprendido poco a poco.
Todo .NET Framework est basado en clases (u objetos). A diferencia de las versiones anteriores
de Visual Basic, la versin .NET de este lenguaje basa su funcionamiento casi exclusivamente en
las clases contenidas en .NET Framework, adems casi sin ningn tipo de limitacion.
Herencia
Encapsulacin
Polimorfismo
Nota: Algunos autores aaden un cuarto requisito: la abstraccin, pero este ltimo est estrechamente
ligado con la encapsulacin.
Herencia
Una relacin de herencia es una relacin en la que un tipo (el tipo derivado) se deriva de otro (el
tipo base), de tal forma que el espacio de declaracin del tipo derivado contiene implcitamente
todos los miembros de tipo no constructor del tipo base.
"La herencia es la capacidad de una clase de obtener la interfaz y comportamiento de una clase
existente."
Encapsulacin
Segn Visual Studio.NET:
"La encapsulacin es la capacidad de contener y controlar el acceso a un grupo de elementos
asociados. Las clases proporcionan una de las formas ms comunes de encapsular elementos."
Cuando usamos las clases, stas tienen una serie de caractersticas (los datos que manipula) as
como una serie de comportamientos (las acciones a realizar con esos datos). La encapsulacin
es esa capacidad de la clase de ocultarnos sus interioridades para que slo veamos lo que
tenemos que ver, sin tener que preocuparnos de cmo est codificada para que haga lo que
hace... simplemente nos debe importar que lo hace.
Polimorfismo
Dicho de otra manera, puede tener mltiples clases que se pueden utilizar de forma
intercambiable, si bien cada clase implementa las mismas propiedades o los mismos mtodos de
maneras diferentes. El polimorfismo es importante en la programacin orientada a objetos puesto
que permite usar elementos que tienen el mismo nombre, independientemente del tipo de objeto
que se est utilizando en ese momento.
Resumiendo: Determina que el mismo nombre de mtodo realizar diferentes acciones segn
el objeto sobre el que se ha aplicado.
Qu es una clase?
Los programas de Visual Basic se generan con objetos como formularios y controles. Los objetos
tambin se pueden utilizar para representar cosas reales como personas, equipos informticos o
incluso algo ms abstracto, como una cuenta bancaria.
Una clase es simplemente una representacin de un tipo de objeto. Pensad en ella como un
plano que describe el objeto. As como un plano puede utilizarse para construir varios edificios,
una clase podemos usarla para crear varias copias de un objeto.
Aunque puede que no os hayis dado cuenta, ya hemos utilizado las clases en otros tutoriales de
VB que hay por Cristalab, como por ejemplo,en el tutorial bsico de Visual Basic .NET o al crear
aplicaciones con .NET y las seguiremos viendo en los prximos Tips o Tutoriales que vengan.
Por ejemplo, el control TextBox lo define una clase TextBox, que define su aspecto y sus
funciones. Cada vez que arrastramos un control TextBox a un formulario, realmente est creando
una nueva instancia de la clase TextBox.
Cada control TextBox es una copia exacta, aunque distinta, de la clase que lo define, la clase
TextBox. Puesto que cada objeto es una "instancia" independiente de una clase, la accin de
crear una clase se denomina creacin de instancias.
Hasta ahora hemos agregado los controles TextBox a su formulario arrastrndolos desde el
Cuadro de herramientas, pero tambin puede crear instancias de un objeto TextBox en su cdigo
si utiliza la palabra clave New.
Dim Textbox1 As New TextBox
Por ejemplo, una clase que representa una cuenta bancaria podra tener propiedades como
AccountNumber o AccountBalance, mtodos como CalculateInterest y eventos como
BalanceChanged. Una vez creada la instancia de un objeto de cuenta bancaria, puede tener
acceso a sus propiedades, mtodos y eventos de igual manera que si se tratara de un objeto
TextBox.
Algunos miembros de una clase son privados; slo se tiene acceso a ellos mediante cdigo
dentro de la clase. Por ejemplo, una clase de cuenta bancaria puede tener un mtodo para
calcular un saldo. Lo lgico es permitir que un programa lea ese balance pero no que pueda
cambiarlo directamente.
Puede ocultar los miembros de una clase si los declara como Private o exponerlos si los declara
como Public. Tambin puede permitir el acceso a una propiedad y a la vez impedir que el
programa cambie su valor declarndolo como ReadOnly.
El cdigo siguiente muestra cmo podra ser una clase BankAccount, por ejemplo:
Class BankAccount
End Sub
Get
Return AccountBalance
End Get
End Property
End Class
Por ejemplo, muchos de los programas que escribimos pueden involucrar personas: Un programa
de administrador de contactos para los contactos comerciales o un programa para realizar un
seguimiento de empleados. Aunque los programas pueden ser considerablemente diferentes, los
atributos que se aplican a cada persona seran los mismos. Todas tienen nombre, edad, direccin,
nmero de telfono, etc.
Para empezar a ver mejor crear clases,y usarlas crearemos una clase que represente a una
persona;
Podemos guardar esta clase y utilizarla en otros programas que escribamos en el futuro.
Las clases se pueden crear de tres maneras: como parte del cdigo en un mdulo de formulario
en un proyecto de aplicacin para Windows, como un mdulo de clase separado agregado a un
proyecto de aplicacin para Windows o como un proyecto de bibliotecas de clase independiente.
Crear clases
Si habis seguido los tutos de Visual Basic de Cristalab, o sabis de ello, sabris que al hacer
doble clic en un formulario y abrir el Editor de cdigo se vea algo parecido a lo siguiente:
End Sub
End Class
Pues mirad, el formulario realmente es una clase, marcada por instrucciones Class y End Class
y cualquier cdigo que se haya escrito entre las dos instrucciones es parte de la clase. Aunque de
manera predeterminada un mdulo de formulario contiene slo una clase nica, puede crear
mdulos adicionales agregando cdigo debajo de la instruccin End Class, tal como se ilustra a
continuacin:
End Class
End Class
La desventaja de crear clases de esta manera es que slo estn disponibles dentro del proyecto
donde se crearon. Si deseamos compartir una clase con otros proyectos, puede colocarla en un
mdulo de clase.
Mdulos de clase
Un mdulo de clase es un archivo de cdigo, separado del resto, que contiene una o ms
clases. Como es un archivo independiente, se puede reutilizar en otros proyectos.
En el panel Plantillas, del cuadro de dilogo Nuevo proyecto, hacemos clic en Biblioteca de
clases.
Todos los objetos tienen atributos y las propiedades representan atributos. Antes, hicimos la clase
"Persons", que representa a una persona; las personas tienen atributos como el nombre y la
edad, por lo que la clase Persons necesita propiedades que representen dichos atributos.
Como campo.
Tambin podemos determinar cmo funciona una propiedad utilizando los modificadores Public,
ReadOnly o WriteOnly.
Los campos son variables pblicas dentro de una clase que se pueden establecer o leer desde
fuera de la clase. Resultan de utilidad para propiedades que no se tienen que validar, por ejemplo,
un valor "Boolean" (True o False).
En el caso de la clase Persons, se puede tener una propiedad Boolean denominada Married, que
especifica si una persona est soltera o casada, puesto que hay slo dos valores posibles.
Para agregar un campo a una clase, el cdigo podra ser como el que sigue.
La mayora de las propiedades, sin embargo, son ms complejas; en la mayor parte de los casos
utilizaremos procedimientos de propiedad para agregar una propiedad a una clase.
Por ejemplo, un procedimiento de propiedad para una propiedad Name, de la clase Persons,
podra ser como el que sigue:
Get
Name = nameValue
End Get
Set(ByVal value As String)
nameValue = value
End Set
End Property
La primera lnea de cdigo declara una variable String privada, nameValue que almacenar el
valor de la propiedad. El procedimiento de propiedad en s comienza con Public Property y
termina con End Property.
El procedimiento Get contiene el cdigo que se ejecutar cuando desee leer su valor; por
ejemplo, si lee la propiedad Persons.Name, el cdigo devolver el valor almacenado en la
variable nameValue.
El procedimiento Set contiene cdigo que se utiliza para asignar un nuevo valor a la variable
nameValue usando un valor pasado como argumento value. Por ejemplo, si escribimos el cdigo
Persons.Name = "Wyrm", el valor String Wyrm se pasar como argumento value; el cdigo del
procedimiento Set lo asignar a la variable NameValue para su almacenamiento.
Por qu complicarnos tanto, en lugar de utilizar un campo que represente la propiedad Name?
En el mundo real, hay ciertas reglas para los nombres: por ejemplo, los nombres normalmente no
contienen nmeros. Puede agregar cdigo al procedimiento Set para comprobar el argumento
value y devolver un error si contiene nmeros.
9. Get
16.
18. Get
25.
27. Get
End Property
Quedar as:
A veces una propiedad se establece una vez y no cambia nunca mas durante la ejecucin del
programa.
Por ejemplo, una propiedad que representa un nmero de empleado nunca debe cambiar, de
modo que otro programa si lo pueda leer, pero no se permitir que ese programa cambie su valor.
La palabra clave ReadOnly se utiliza para especificar que un valor de propiedad se pueda leer
pero no modificar.
Para crear una propiedad de slo lectura, deberemos crear un procedimiento de propiedad con un
procedimiento Get, pero sin procedimiento Set, como se muestra a continuacin.
Get
ID = IDValue
End Get
End Property
De igual forma, la palabra clave WriteOnly permite establecer un valor de propiedad pero no
permite que se lea; por ejemplo, no permite que otros programas lean una propiedad de
contrasea. Podemos utilizar ese valor para realizar acciones dentro de la clase, pero desear
que sigan siendo privadas.
Para crear una propiedad de slo escritura, se crear una propiedad con un procedimiento Set
pero sin procedimiento Get, como a continuacin:
passwordValue = value
End Set
End Property
Los procedimientos de propiedad ReadOnly y WriteOnly tambin son tiles cuando deseamos
tomar un valor de propiedad y convertirlo en un valor diferente. Por ejemplo, pensemos en la edad
de una persona. A diferencia del nombre, la edad cambia con el tiempo, si ha asignado la edad a
una clase y la lee de nuevo un ao despus, sera incorrecta.
En la clase Persons, podemos evitarlo agregando dos propiedades: una propiedad "WriteOnly
BirthYear" que representa el ao de nacimiento, que nunca cambia, y una propiedad "ReadOnly
Age" que devuelve un valor calculando la diferencia entre el ao en curso y el ao de nacimiento.
5. birthYearValue = value
6. End Set
7. End Property
8.
10. Get
End Property
Agregaremos mtodos a una clase, para que puedan realizar acciones. Vimos que la mayora de
los objetos tienen acciones que pueden realizar; estas acciones se conocen como mtodos.
La clase Persons que creamos en la seccin anterior,tiene muchas acciones que pueden realizar
las personas y, estas acciones se pueden expresar como mtodos de clase.
Los mtodos de una clase son simplemente procedimientos Sub o Function, declarados en la
clase.
Por ejemplo, una clase Account puede tener un procedimiento Sub denominado Recaculate, que
actualizar el balance o un procedimiento Function denominado CurrentBalance para devolver el
ltimo balance.
End Sub
End Function
Si bien la mayora de los mtodos de clase son pblicos, tambin se pueden agregar mtodos
que slo la clase en s puede utilizar. Por ejemplo, la clase Persons puede tener su propia funcin
para calcular la edad de una persona. Si declara la funcin como Private, no se puede ver o
llamar desde fuera de la clase.
El cdigo para una funcin privada puede ser similar a ste otro:
End Function
Ms tarde podremos cambiar el cdigo que calcula el valor CalcAge y el mtodo seguir
funcionando bien sin cambiar ningn cdigo que utilice el mtodo. Ocultar el cdigo que realiza
el mtodo, se conoce como la "encapsulacin", ya explicada al comienzo.
FullName = firstNameValue & " " & middleNameValue & " " _
& lastNameValue
Else
End If
End Function
End Function
Modificamos el cdigo en el procedimiento de la propiedad Age para utilizar la funcin
privada:
Get
Age = CalcAge(birthYearValue)
End Get
End Property
Get
End Get
End Property
Un programa puede responder a eventos externos, como por ejemplo, un usuario que hace clic
en un botn. En esta seccin, obtendremos informacin sobre cmo agregar eventos a una clase.
Por ejemplo, quizs deseemos agregar un evento AgeCalculated a la clase Persons que hicimos.
Podemos provocar a continuacin el evento en el mtodo CalcAge. Despus de hacer esto,
cuando se llama al mtodo, podemos ejecutar algn cdigo adicional en cuanto se haya calculado
la edad de la persona.
RaiseEvent AgeCalculated(Age)
End Function
En el men Archivo, hacemos clic en Guardar todo para guardar el trabajo.
Los formularios y controles son en realidad clases; cuando arrastramos un control Button a un
formulario, estamos creando realmente una instancia de la clase Button.
Tambin podemos crear instancias de cualquier clase en el cdigo utilizando una declaracin con
la palabra clave New. Por ejemplo, para crear una nueva instancia de la clase Button,
agregaremos el cdigo siguiente.
Para utilizar y probar la clase Persons, debemos crear primero un proyecto de prueba y agregar
una referencia al mdulo de clase.
Hacemos doble clic en el formulario para abrir el editor de cdigo y escribimos la siguiente
declaracin justo debajo de la lnea Public Class Form1.
Quizs os preguntis por qu tuvimos que escribir dos veces Persons, pues porque la primera instancia es
el mdulo de clase Persons.vb y la segunda instancia es la clase Persons de ese mdulo.
El siguiente paso es agregar una interfaz de usuario y un cdigo que utilice la clase Persons.
Agregaremos cuadros de texto donde el usuario especificar los valores para cada una de las
propiedades (excepto la propiedad de slo lectura "Age"), una casilla para el campo "Married" y
botones para probar cada uno de los mtodos pblicos.
Hacemos doble clic en el primer botn (Update) para abrir el Editor de cdigo y en el
controlador de eventos Button1_Click, agregamos el siguiente cdigo:
With person1
.FirstName = Textbox1.Text
.MiddleName = Textbox2.Text
.LastName = Textbox3.Text
.BirthYear = Textbox4.Text
.Married = CheckBox1.Checked
End With
MsgBox(person1.FullName)
Else
End If
Mtodos sobrecargados
El siguiente ejemplo muestra un mtodo con dos sobrecargas, una que acepta una String y la otra
que acepta un Integer como argumentos.
Public Sub TestFunction(ByVal input As String)
MsgBox(input)
End Sub
MsgBox(CStr(input))
End Sub
Si se debe llamar a este mtodo desde el cdigo y pesarle una cadena, se ejecutara la primera
sobrecarga y un cuadro de mensaje mostrara la cadena; si se le pas un nmero, se ejecutara la
segunda sobrecarga y el nmero se convertira en una cadena y aparecera en el cuadro de
mensaje.
Podemos crear tantas sobrecargas como sean necesarias y cada una de ellas puede contener un
nmero diferente de argumentos.
En la clase Persons, agregaremos un mtodo con dos sobrecargas para devolver la inicial del
segundo nombre de una persona; una slo con la inicial y la otra con la inicial seguida por un
punto.
MiddleInitial = Left$(middleNameValue, 1)
End Function
End Function
En el Explorador de soluciones, seleccionamos Form1 y, en el men Ver, hacemos clic en
Diseador.
Hacemos doble clic en el primer botn (With) para abrir el Editor de cdigo y escribimos el
siguiente cdigo en el controlador de eventos Button3_Click.
Hacemos clic en el botn Actualizar para establecer las propiedades de la clase y hacemos
clic en el botn With.
Se abrir un cuadro de mensaje. Muestra nuestro nombre con un punto tras la inicial del primer
apellido.
Hacemos clic en el botn Without.
Se abrir un cuadro de mensaje. Muestra nuestro nombre sin el punto tras la inicial del primer
apellido.
Si deseamos escribir cdigo que responda a un evento (o que controle un evento), debemos
asociar ese evento a un controlador de eventos. Podemos hacerlo mediante la instruccin
Handles o Add Handler.
La instruccin Add Handler permite asociar los eventos a los controladores en tiempo de
ejecucin, mientras que la instruccin Handles slo asocia los eventos a los controladores en
tiempo de compilacin. La instruccin Handles se puede agregar al final de cualquier subrutina
que tenga la misma firma que el evento.
Por ejemplo, antes, agregamos un evento denominado "AgeCalculated" que toma un parmetro
de tipo "Integer". La subrutina que crea para controlar el evento tambin debe tomar un parmetro
Integer, como se observa en el cdigo siguiente.
Private Sub person1_AgeCalculated(ByVal Age As Integer) _
Handles person1.AgeCalculated
El objeto person1 se debe crear con la instruccin WithEvents para que se pueda tener acceso al
evento AgeCalculated. Al usar la instruccin Add Handler, puede asociar dinmicamente los
eventos a controladores en tiempo de ejecucin.
Handles person1.AgeCalculated
Else
End If
End Sub
Presionamos F5 para ejecutar el proyecto y mostrar el formulario.
-En el primer cuadro de texto, escribimos nuestro nombre.
-En el segundo cuadro de texto, escribimos nuestro segundo apellido.
-En el tercer cuadro de texto, escribimos nuestro tercer apellido.
-En el cuarto cuadro de texto, escribimos el ao de nuestro nacimiento con cuatro dgitos (por
ejemplo, 1983).
-Activamos la casilla si est casado/a.
Hacemos clic en el botn Actualizar para establecer las propiedades de la clase y haga clic
en el botn Full Name.
Muchos objetos de la vida real tienen atributos y comportamientos en comn, por ejemplo, todos
los coches tienen ruedas y motores, y pueden avanzar y detenerse. Sin embargo, algunos
automviles tienen atributos que no son comunes, por ejemplo, un descapotable tiene una parte
superior que se puede subir/bajar electrnica o manualmente.
Si se cre un objeto para representar un automvil, se pueden incluir propiedades y mtodos para
todos los atributos y comportamientos comunes, pero no se podran agregar atributos como la
cubierta de un descapotable, puesto que dicho atributo no es generalizable a todos los
automviles.
Mediante el uso de la herencia, se puede crear una clase "descapotable" que deriva de la clase
"automvil". sta hereda todos los atributos de la clase automvil y puede agregar los atributos y
comportamientos que son nicos de un auto descapotable.
La instruccin Inherits se utiliza para declarar una nueva clase, denominada clase derivada,
basada en una clase existente conocida como clase base. Las clases derivadas heredan todas
las propiedades, los mtodos, los eventos, los campos y las constantes definidos en la
clase base.
Class DerivedClass
Inherits BaseClass
End Class
Se pueden crear instancias de la nueva clase DerivedClass, se puede tener acceso a sus
propiedades y mtodos como BaseClass y se pueden agregar nuevas propiedades y mtodos
que son especficos de la nueva clase. Para ver un ejemplo, nos fijaremos en la clase Persons
que tenemos creada.
Supongamos que deseamos tener una clase que represente jugadores de bisbol: los jugadores
del bisbol tienen todos los atributos definidos en la clase Persons, pero tambin tienen atributos
nicos, como su nmero y posicin. En lugar de agregar esas propiedades a la clase Persons, se
crear una nueva clase derivada que se hereda de Persons, a la que se agregaran las nuevas
propiedades.
Inherits Persons
Agregamos tambin el siguiente cdigo para definir las dos nuevas propiedades.
Private numberValue As Integer
Get
Number = numberValue
End Get
numberValue = value
End Set
End Property
Get
Position = positionValue
End Get
positionValue = value
End Set
End Property
En el men Archivo, hacemos clic en Guardar todo.
Hemos creado una clase Players, derivada de la clase Persons.Ahora haremos una nueva
aplicacin para probar la clase Players.
3. With player1
4. .FirstName = "Wyrm"
5. .LastName = "Garcia"
6. .Number = 13
7. .Position = "Shortstop"
8. End With
9. With player2
12. .Number = 51
End With
14. En el Explorador de soluciones, seleccionamos Form1 en el proyecto PlayerTest y, a
continuacin, en el men Ver, hacemos clic en Diseador.
18. Hacemos doble clic en el primer botn (At Bat) para abrir el Editor de cdigo y escribimos
el siguiente cdigo en el controlador de eventos Button1_Click.
19. MsgBox(player1.Position & " " & player1.FullName & ", #" & _
Observamos que estamos utilizando el mtodo FullName que se hered de la clase base Persons.
21. MsgBox(player2.Position & " " & player2.FullName & ", #" & _
22. Presionamos F5 para ejecutar el programa. Hacemos clic en cada botn para ver los
resultados.
Clic al Boton1(At Bat):
Clic al Boton2(on Deck):
Y aqui, finalizando probar una clase derivada, acabamos con el tutorial sobre la POO y sus clases
en Visual Basic.NET.
Hemos visto, qu son y cmo crear clases, agregarle propiedades, mtodos y eventos, las hemos
heredado, etc. Espero que no se os haya hecho demasiado largo, ni muy tostonazo, pero la mejor
forma de aprender y de que las cosas se entiendan, es hacindolo uno mismo...
Espero que las explicaciones hayan estado claras, y que a quien le haya gustado este tema, no
dude en profundizarlo un poco mas, yo solo he levantado la primera capa de todo lo que hay
debajo. Suerte!!
PD: El archivo del tutorial contiene todo lo que hemos ido haciendo desde el principio del tutorial,
para ver los tres ejemplos, debereis hacer Clic en "Establecer como proyecto de inicio", como ya
hicimos durante el tuto.
En este sencillo tutorial, vamos a hacer que se muestre un cuadro de dilogo mostrndonos el
nombre que previamente hemos escrito en el cuadro de texto.
Lo primero que vamos a hacer es cargar el entorno de desarrollo del Visual Studio .NET, as que
vamos a Inicio - Programas - Microsoft Visual Basic 2008... y lo ejecutamos. En la pantalla de
inicio volvemos a seleccionar "Aplicacin de Windows Forms", como se ve en la imagen.
En caso de que despus de un rato no lo mostrase, fjate en el lado derecho de la pantalla, vers
que hay un "panel" o ventana en la que se indica el proyecto actual y se muestran los ficheros
que lo componen. Ese panel es el Explorador de Soluciones.
Para que veais todo cargado, la pantalla con todo el IDE activo ser esta:
Los controles son los elementos que insertamos dentro de un formulario y que nos va a permitir
interactuar entre el usuario y el cdigo: botones, cuadros de texto, etiquetas, cuadros
desplegables, cuadrculas de datos. En definitiva todos y cada uno de los elementos que vemos
en los formularios de todas las aplicaciones. La lista de controles bsicos disponibles la tenemos
a la izquierda, en el panel de herramientas.
Para aadir controles al formulario utilizaremos la barra de herramientas. Por ejemplo, para aadir
una etiqueta (Label) y una caja de texto (TextBox), simplemente haremos doble-clic sobre esos
elementos de la barra de herramientas y se aadirn al formulario o podemos tambien agarrarlos
y arrastrarlos hasta nuestro formulario.
Para nuestro ejemplo, aadiremos un botn (Button) y lo situaremos debajo del cuadro de texto
(Textbox). Luego aadimos una etiqueta (Label) para que quede de esta forma:
Como vemos, por defecto, el IDE pone unos nombres genricos a los controles, como label1,
textbox1, button1, es decir utiliza el tipo de control y lo va numerando tantas veces como
controles iguales tengamos en el formulario(label1, label2, label3,...). Es por ponerle un nombre
inicial, ya que siempre los controles deben tener un nombre nico.
Ahora vamos a cambiar el texto que contiene el botn "Button1". Para cambiarle este texto hay
que utilizar la ventana de propiedades (A la derecha-abajo), en esta ocasin el elemento que nos
interesa de esa ventana de propiedades es Text, escribimos en esta propiedad la palabra
"Mostrar" y cuando pulses Intro o el tabulador veremos que el texto del botn se ha actualizado.
Hacemos lo mismo con la etiqueta "Label", recuerdamos que hay que seleccionarla primero
haciendo clic para que se muestren las propiedades de la etiqueta. Escribimos "Nombre:" en Text
y pulsamos intro o el tabulador.
Fjate que en la parte superior de la ventana pone el control que estamos editando y de que tipo
es.
Escribir el cdigo
Ahora vamos a escribir el cdigo que se ejecutar cada vez que se haga clic en el botn que
hemos aadido. Para ello, selecciona el botn "Mostrar" y hacemos doble clic en l, se mostrar
una nueva ventana, en este caso la ventana de cdigo del botn, asociada con el formulario que
tenemos en nuestro proyecto. Nos mostrar:
Que nosotros pulsemos doble clic en el botn y que aparezca un fragmento de cdigo significa lo
siguiente: VB .NET interpreta que quieres poner cdigo para realizar alguna accin cuando se
haga clic sobre el botn, por lo tanto te muestra ya el "procedimiento" o parte de cdigo que se va
a ejecutar cuando suceda esto. A esta forma de trabajar se le llama programacin orientada a
eventos. Es decir, cuando se produzcan el evento de pulsar el botn (click) ejecutas este cdigo.
Por lo tanto vemos que los controles adems de tener propiedades (que modifican su aspecto)
tambin atienden a una serie de eventos (clic, doble clic). Los eventos a los que atienden los
controles los podemos ver en la ventana de propiedades, seleccionando:
Hay otra forma de acceder a los eventos de los controles y es esta. Vete a la vista del cdigo del
formulario pulsando en el botn de codigo, que muestro en la imagen siguiente:
Llegaremos otra vez a la ventana del cdigo de antes, haz clic en el desplegable de arriba a la
izquierda y vers la siguiente imagen
Que son los objetos que hemos aadido en nuestro formulario. Selecciona "Button1" y fjate ahora
en el desplegable de la derecha y selecciona Click.
Volvemos a la pantalla del cdigo para el evento clic del botn
Esta pantalla nos est indicando en la parte superior, que estamos trabajando con "Form1.vb".
Debajo nos indica (a la izquierda) que estamos con el control llamado "Button1" y a la derecha
que estamos trabajando con el evento click.
Escribimos el siguiente cdigo en el hueco dejado por Visual Basic entre las lneas que hay entre
Private Sub... y End Sub
Pulsamos F5 para que se ejecute el cdigo que hemos escrito o pulsa en el botn "play" que est
en la barra de botones.
Cuando se presente el formulario escribe algo en el cuadro de texto, pulsa en el botn Mostrar y
veremos que se muestra un cuadro de dilogo dicindote Hola y a continuacin lo que hayas
escrito en el cuadro de texto (TextBox):
Ya tenemos nuestra aplicacin "Windows forms" funcionando, creada con Visual Basic .NET. Pero
no queda la cosa ahi, y por ltimo vamos a aadirle un boton, para cerrarlo. Ahora cambiaremos
las dos propiedades: Name para ponerle cmdCerrar, y Text para ponerle Cerrar.
Obviamente al ponerle esta vez un nombre al control, en lugar de llamarse Button2 se llamar
como le hemos indicado cmdCerrar y as lo veremos en el cdigo. Pulsamos doble clic en l para
escribir el cdigo que queremos que ejecute:
Me.close()
Y con este boton logramos que se cierre el formulario, y volvamos al entorno de desarrollo de
VB.NET. Rpido, algo sencillo, y para toda la familia.