En la entrega
anterior vimos algunos conceptos generales que acompañan a esta versión de
Visual Basic, también vimos algunas palabras que usaremos durante todo
este curso de iniciación, dichas palabras están en el
glosario, al cual iré añadiendo nuevas definiciones, conforme surjan o yo
me vaya acordando, así que te recomiendo que de vez en cuando le eches un
vistazo.
Ahora vamos a empezar con esta segunda entrega del Curso de Iniciación a la
programación con Visual Basic .NET
Lo primero que vamos a aprender es a saber
manejarnos un poco con el entorno de desarrollo (IDE) de Visual Studio .NET, sí
he dicho entorno de desarrollo de Visual Studio, no de Visual Basic... y no me
he confundido, ya que dicho IDE es el mismo para cualquier lenguaje .NET. Por
tanto, si además de usar el VB.NET quieres hacer tus "pinitos" con el
C# o con cualquier otro, no tendrás que abrir otro programa para cada uno de
esos lenguajes. Incluso podrás trabajar con varios proyectos a un mismo tiempo,
aunque sean de lenguajes diferentes. Además, si así lo quieres y
"sabes" cómo hacerlo, puedes crear tus propios complementos para que
se integren con el IDE de Visual Studio .NET.
Aunque eso, casi con total seguridad, no lo veremos en este curso de
iniciación.
Lo primero que vamos a hacer es cargar el
entorno de desarrollo del Visual Studio .NET, así que... ya puedes abrirlo, si
es que no la has hecho ya.
En la pantalla de inicio, selecciona un nuevo proyecto. Pero esta vez vamos a
seleccionar una aplicación de Windows:
Figura 1
No te preocupes, que no te voy a complicar la
vida, simplemente vamos a tener algún tipo de proyecto cargado en el entorno de
desarrollo, ya que lo que vamos a ver es cómo modificar y configurar algunos de
los aspectos del mismo.
Déjale el nombre que te muestra, ya que nos da igual cómo se llame. (el Guille está un poco pasota, ¿verdad?)
En el proyecto, se habrá creado un formulario,
el cual seguramente te lo mostrará de forma automática. Si no se mostrara nada
y siguiera estando la pantalla de inicio... dale un respiro ya que seguramente
se lo estará pensando... en caso de que después de pensárselo no lo mostrara
tampoco... fíjate en el lado derecho de la pantalla, verás 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 "Solution Explorer"
o Explorardor de Soluciones, (te digo cómo se llama en los dos idiomas,
ya que, algunas de las imágenes que te voy a mostrar están capturadas de la
versión en castellano del Visual Studio .NET y otras de la versión en
inglés... así cuando la veas en un idioma o en otro, sabrás de que estoy
hablando).
Figura 2
Para que se muestre el formulario (Form1), haz
doble click en dicho "elemento" del explorador de soluciones.
Lo que vamos a hacer ahora es cambiar la separación de los puntos que se
muestran en el formulario, ese "grid" o grilla, servirá para ajustar
los controles (ya sabrás de qué hablo) que se añadan a dicho formulario.
Por defecto la separación es de 8x8 puntos o pixels... y vamos a ponerlo en
4x4.
Selecciona el formulario, (el cual se supone que ya si puedes verlo),
simplemente con hacer un click en él es suficiente. verás que tiene este
aspecto:
Figura 3
Realmente no tendrá ese aspecto, salvo que
tengas el Windows XP, pero al aspecto que me refiero es al de la
separación de los puntos.
En el panel de la derecha, debajo del
explorador de soluciones, está la ventana de propiedades del elemento que
actualmente esté seleccionado, en nuestro caso son las propiedades del Form1.
Vamos a buscar el elemento GridSize para poder cambiar el tamaño de
separación. Verás que se muestran dos valores separados por punto y coma, pero
también hay una cruz a la izquierda de la palabra GridSize, si pulsas en esa
cruz, se mostrarán los tamaños a lo que se refiere esos valores separados por
punto y coma:
Figura 4
Posiciónate en cualquiera de ellos y asígnale
el valor 4, de esta forma, tendremos un formulario con una cuadrícula mas
pequeña, en la que será más fácil posicionar los controles que queramos
añadir al formulario en cuestión.
Fíjate que después de haber cambiado esos
valores, los mismos se muestran en "negrita", indicándonos de esta
forma que son valores que nosotros hemos asignado, los que tiene por defecto.
También te habrás fijado que ahora el "grid" tiene los puntos más
juntos. Si no te gusta así como está ahora, ponlos a tu gusto. Yo los
configuro a 4x4, pero tu eres libre de ponerlos como mejor te plazca...
El aspecto habrá cambiado a este otro, te muestro el aspecto de Windows XP y el
del Windows 2000 (clásico), aunque en resumidas cuentas, lo que hay que ver es
que los punticos esos están más arrejuntaos...
Figura 5 |
Figura 6 |
Para añadir controles al formulario, hay que
usar la barra de herramientas que está situada en la parte izquierda del IDE de
Visual Studio .NET, por ejemplo para añadir una etiqueta (Label) y una caja de
texto (TextBox), simplemente haz doble-click sobre esos elementos de la barra de
herramientas y se añadirán al formulario.
Para poder situarlos en el sitio que más te apetezca, simplemente pulsa en
ellos y manteniendo el ratón pulsado, ponlos donde más te guste... todo esto
deberías saber hacerlo, ya que son cosas básicas de Windows, así que en
próximas ocasiones no esperes tantas explicaciones... ¿vale?
Añade ahora un botón (Button) y sitúalo
debajo del textbox. Para cambiarle el texto que muestra el botón, que por
defecto será el nombre que el IDE le ha asignado, en esta ocasión será
Button1, hay que usar la ventana de propiedades, en esta ocasión el elemento
que nos interesa de esa ventana de propiedades es Text, escribe Mostrar y
cuando pulses Intro, verás que el texto del botón también ha cambiado. Si
antes has trabajado con el Visual Basic "clásico", esa propiedad se
llamaba Caption. Decirte que ya la propiedad Caption no existe en ningún
control, ahora se llama Text.
Haz lo mismo con la etiqueta, recuerda que tienes que seleccionarla (un click)
para que se muestren las propiedades de la etiqueta, escribe Nombre: y
pulsa intro.
Ahora vamos a escribir código para que se
ejecute cada vez que se haga click en el botón que hemos añadido.
Para ello, selecciona el botón Mostrar y haz doble click en él, se mostrará
una nueva ventana, en este caso la ventana de código asociada con el formulario
que tenemos en nuestro proyecto.
Te mostrará esto: (realmente te mostrará más
cosas, pero por ahora centrate sólo en este código)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
End Sub
Lo que vamos a hacer ahora, como ya te he
dicho, es escribir el código que se ejecutará cuando se haga click en ese
botón, lo cual producirá el evento
Click asociado con dicho botón, ese evento se producirá si se hace un click
propiamente dicho, es decir con el ratón, o bien porque se pulse intro o la
barra espaciadora cuando el botón tenga el foco.
La nomenclatura, (forma de llamar a las cosas), para los eventos de Visual Basic
siguen el siguiente "esquema":
[nombre del control] [guión bajo] [nombre del evento]
Pero esto sólo es una sugerencia que Visual Basic nos hace, en las versiones
anteriores no era una sugerencia, era una imposición. Podemos dejar el nombre
que Visual Basic nos sugiere o podemos poner el nombre que nosotros queramos; lo
importante aquí es la parte final de la línea de declaración del
procedimiento: Handles Button1.Click, con esto es con lo que el
compilador/intérprete de Visual Basic sabe que este procedimiento es un evento y que dicho
evento es el evento Click del objeto Button1.
Un detalle: el nombre Button1 es porque hemos
dejado el nombre que por defecto el IDE de Visual Studio asigna a los
controles que se añaden a los formularios. Si quieres que se llame de otra
forma, simplemente muestra el formulario, selecciona el control al que quieres
cambiarle el nombre, busca la propiedad Name en la ventana de propiedades y
cambia el nombre que allí se sugiere por el que tu quieras... o casi, ya que
para los nombres de los controles, así como para otras cosas que usemos en
Visual Basic hay que seguir ciertas normas:
- El nombre debe empezar por una letra o un guión bajo.
- El nombre sólo puede contener letras, números y el guión bajo.
Por tanto, si quieres cambiarle el nombre al
evento que se produce cuando se hace click en el botón, escribe ese nombre
después de Private Sub, aunque no es necesario cambiar el nombre del evento, ya
que, al menos por ahora, nos sirve tal y como está.
Lo que si importa es lo que escribamos cuando
ese evento se produzca, en este caso vamos a a hacer que se muestre un cuadro de
diálogo mostrándonos el nombre que previamente hemos escrito en el cuadro de
texto.
Escribe lo siguiente en el hueco dejado por el Visual Basic, la línea que hay
entre Private Sub... y End Sub
MsgBox("Hola " & TextBox1.Text)
Antes de explicarte que es lo que estamos
haciendo, pulsa F5 para que se ejecute el código que hemos escrito o pulsa en
el botón "play" que está en la barra de botones.
Escribe algo en la caja de textos, que por defecto tendrá "TextBox1",
(que es el valor que por defecto Visual Basic le asigna a la propiedad Text de
dicho control), pulsa en el botón Mostrar y verás que se muestra un cuadro de
diálogo diciéndote Hola y a continuación lo que hayas escrito en el TextBox.
Algo así:
Figura 7
Pues sí: ¡esta es tu primera aplicación para
Windows creada con el Visual Basic .NET!
(pfiuuuuu, pfiiiiuuuu, bang! (sonido de cohetes y esas cosas))
Pulsa en el botón OK (Aceptar) para quitar el
cuadro de diálogo y para cerrar el formulario, pulsa en el botón con la
"x".
Ahora vamos a añadir otro botón, el cual se
llamará cmdCerrar y el texto que debe mostrar es: Cerrar.
Y este es el código que debe ejecutar cuando se haga click en el... ¿te
atreves a hacerlo sin ayuda? Si no te atreves, tendrás que hacerlo sin mi
ayuda... creo que ya sabes cómo hacerlo... venga, no me seas holgazán... (u holgazana, puntualicemos).
Me.Close()
Pulsa F5 y cuando pulses en el botón cerrar,
se cerrará el formulario.
Ahora veamos con detalle el código que hemos
usado en los dos eventos:
MsgBox("Hola " & TextBox1.Text)
En este código tenemos lo siguiente:
MsgBox que es una función o método, (realmente es una clase, como casi
todo en .NET), cuya tarea es mostrar en un cuadro de diálogo lo que le
indiquemos en el primer parámetro,
también tiene parámetros
opcionales, pero por ahora usemos sólo el primero que es obligatorio.
En Visual Basic.NET todos los procedimientos que reciban parámetros deben
usarse con los paréntesis, esto no era así en las versiones anteriores de VB,
por tanto, para indicarle que es lo que queremos que muestre, tendremos que
hacerlo dentro de los paréntesis, en este caso, queremos que se muestre la
palabra "Hola " y lo que haya en la caja de texto.
La palabra Hola (seguida de un espacio) es una constante, es decir siempre será la
palabra Hola seguida de un espacio, salvo que nosotros queramos que sea otra
cosa... pero una vez que el programa esté compilado, siempre será lo mismo...
por eso se llama constante, porque no cambia... en este caso una constante
alfanumérica o de cadena, por eso va entrecomillada, ya que todos los literales
o cadenas que queramos usar en nuestros proyectos deben ir dentro de comillas
dobles.
Por otro lado, TextBox1.Text representa el texto que haya en la caja de
textos y por tanto devolverá lo que en él hayamos escrito.
Por último, para que esas dos cadenas de caracteres, la constante Hola y el
contenido de la propiedad Text del control TextBox1, se puedan unir para usarla
como una sola cadena, usaremos el signo & (ampersand) el cual sirve para
eso, para concatenar cadenas de caracteres y hacer que Visual Basic entienda que
es una sola.
Por tanto, si la propiedad Text del control TextBox1 contenía la cadena
TextBox1, (tal y como se muestra en la figura 7), al unir las dos cadenas,
resultará una nueva con el siguiente contenido: "Hola TextBox1"
que no es ni más ni menos que la "suma" de las dos cadenas que
teníamos... (sí, ya se que soy un poco pesado con estos
y que me estoy repitiendo, pero tú lee y deja que yo piense en cómo hacer que
todo esto te entre en tu cabecita... ¿vale? gracias por la confianza...)
En el método del evento Click del botón
cerrar hemos escrito: Me.Close()
Me representa al objeto o clase Form1 (el formulario) y el método Close
lo que hace es cerrar el formulario, igual que cuando pulsamos en el botón
cerrar del formulario.
Vamos a ver ahora el código completo del
evento Click del botón cerrar, así como los pasos que se supone que has
realizado para poder añadirlo al formulario, tal y como te dije un poco antes:
Para añadir un botón nuevo:
- haz doble click en el elemento Button de la ventana de herramientas que está
a la izquierda,
- selecciona el control recién añadido, (haciendo un click simple)
- en la ventana de propiedades selecciona la propiedad Text y escribe en ella la
palabra Cerrar,
- en la ventana de propiedades selecciona la propiedad Name y escribe en ella la
palabra cmdCerrar,
- haz doble-click en el botón para que se muestre la ventana de código y te
mostrará:
Private Sub cmdCerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCerrar.Click
End Sub
- escribe el código para cerrar el formulario: Me.Close()
Nota: Para que tengas más fácil buscar las
propiedades en la ventana de propiedades, puedes hacer que se muestren por orden
alfabético, simplemente pulsando en el botón AZ:
Figura 8
Seguramente te estarás preguntando porqué algunas imágenes están en
español y otras en inglés, (y si no te lo estás
preguntando, te lo va a decir igualmente), es porque algunas capturas
las hice en de la versión en castellano de la Beta 2 de Visual Studio .NET y
otras en la versión en inglés, ¿la razón o motivo de esta dualidad?, la
partición en la que tenía instalado la versión en español, la he
formateado y cuando quise volver a instalarla, me dio tantos errores que
desistí y ahora estoy usando la versión inglesa que ya tenía instalada en
la partición del Windows XP. Si más adelante vuelvo a instalarla, (cosa que
volveré a intentar, aunque no con tanta celeridad como me hubiese gustado, ya
que al no tener la documentación en español, me da lo mismo que el entorno
de trabajo esté o no en inglés... cosa que cambiará cuando esté la
versión definitiva... o cuando me envíen la versión con la documentación en
español... lo que antes ocurra).
Sé que estos detalles a lo mejor ni te interesan, pero tenía ganas de
explicarlo... je, je.
Para terminar esta segunda entrega, vamos a
crear un proyecto igual al que hasta ahora hemos usado, pero con el lenguaje C#
(c sharp), para que veas que en algunas cosas es igual de sencillo usarlo,
aunque en algunos aspectos es más estricto que el Visual Basic y así de camino
te demuestro que no era falso eso que te dije de que en el entorno integrado del
Visual Studio .NET podíamos tener varios proyectos en varios de los lenguajes
soportados por .NET.
Sin cerrar el proyecto que ya tenemos,
despliega el menú File/Archivos y selecciona la opción Add project (Añadir
proyecto), del submenú que te mostrará selecciona Nuevo proyecto... y del
cuadro de diálogo que te muestra, (como el de la Figura 1), selecciona del
panel izquierdo Visual C# Pojects y del derecho Windows Application,
y pulsa en el botón Aceptar.
(en la imagen siguiente te muestro también el nombre que yo le he dado:
WindowsApplication1cs)
Figura 9
Se añadirá un nuevo proyecto al Explorador de
soluciones, fíjate que la extensión del formulario es .cs en lugar de .vb que
es la extensión que se usa en los ficheros de Visual Basic .NET.
Añade los mismos controles que en el
formulario de Visual Basic y también cámbiale el nombre al botón cerrar.
Cámbiale el texto que muestra el formulario para que indique esto: Form1 para
c#, ya sabes, selecciona el formulario y en la ventana de propiedades eliges
la propiedad Text.
Haz doble click en el botón Mostrar y escribe este código en el procedimiento
que te muestra:
MessageBox.Show("Hola " + textBox1.Text);
Fíjate que en lugar de usar MsgBox, aquí hemos usado MessageBox con la
particularidad de que hay que especificar el método que queremos usar, en este
caso: Show. El resto se usa igual que con VB, con la salvedad de que la
concatenación de cadenas se hace usando el signo de suma (+) en lugar del
ampersand (&), (eso mismo también podemos hacerlo con Visual Basic, pero te
recomiendo que uses el signo & en lugar de + cuando quieras sumar
cadenas de caractes en VB), y otro detalle: todas las instrucciones en C#
deben acabar en punto y coma (;).
Esta función MessageBox también podemos usarla en nuestros proyectos de VB, en
lugar de MsgBox, ya que es una clase que pertenece al .NET Framework y todas las
clases del .NET Framework podemos usarlas en nuestros proyectos de Visual
Basic .NET.
Ahora haz doble click en el botón cerrar y
escribe esto otro:
this.Close();
En C# no se utiliza Me, sino this, que para el caso viene a
representar lo mismo: la clase en la que se usa.
Si pulsas F5, verás que funciona de igual
forma que antes... tan igual porque es el mismo proyecto de VB, la razón es
porque al tener varios proyectos en el panel del explorador de soluciones,
tenemos que indicarle cual de los proyectos es el que se ejecutará al pulsar
F5, para cambiarlo al de C#, selecciona el nuevo proyecto añadido y pulsando
con el botón derecho, selecciona del menú desplegable: Set as StartUp
Project (seleccionarlo como proyecto de inicio o algo parecido en la
versión española)
Figura 10
Pulsa F5 y se ejecutará ese proyecto, te
darás cuenta que es el de c# por el caption del formulario, ya que el aspecto
es idéntico al de VB, otra cosa por la que te darás cuenta de que no es el
proyecto de VB es cuando pulses en el botón mostrar, el cuadro de diálogo no
muestra el nombre de la aplicación, como ocurría con el proyecto de VB, (ver
la figura 7), para eso ocurra, tendremos que decirle explícitamente que lo
muestre:
MessageBox.Show("Hola " + textBox1.Text, Application.ProductName);
Esto mismo también es válido si queremos usar
esa función desde Visual Basic.
Creo que lo vamos a dejar aquí.
Te resumo lo que hasta ahora hemos aprendido: (dice hemos, porque él también va experimentando
mientras te explica, que conste, no sea que te creas que el Guille
ha nacido sabiendo...)
- Crear un nuevo proyecto en Visual Basic y en
C#
- Manejar varios proyectos a la vez, incluso de lenguajes distintos.
- Añadir controles a un formulario e interactuar con ellos mediante eventos.
- Codificar o decirle qué queremos que haga cuando esos eventos se produzcan.
- Usar la función MsgBox y MessageBox para mostrar cuadros de aviso.
- Concatenar (unir varias en una) cadenas de caracteres.
- Uso de la clase Application para mostrar el nombre de la aplicación.
- Uso de Me (o this en c#) para representar a la clase actual.
- Uso de las propiedades de los controles, en este caso la propiedad Text del
control TextBox.
- Saber manejarte, aunque sólo sea un poco, por el entorno integrado del Visual
Studio .NET
- Conceptos tales como: método, propiedad, evento, parámetro, parámetro
opcional, de los cuales tienes una explicación o definición en la página del glosario, sitio al que te mandan los
links que has encontrado en algunas de esas palabras.
Bueno, pues esto ha sido todo por el momento...
en la próxima entrega... más.
Nos vemos.
Guillermo