Está en la página 1de 7

Visual Basic .

Net

Una aplicación con funcionalidad básica


Diseño del formulario
Después de iniciar VS.NET, crearemos un nuevo proyecto al que daremos el nombre de
EscritorTexto. En el formulario del proyecto, Form1, añadiremos los controles que permitirán al
usuario escribir un texto, grabar dicho texto en un fichero, etc. En concreto añadiremos dos
controles Label, dos TextBox y dos Buttons cuya ubicación en la ventana del Cuadro de
herramientas mostramos en la siguiente figura.

La forma de dibujar un control en un formulario ya ha sido explicada anteriormente, por lo que


directamente mostramos en la siguiente figura, el formulario resultante con los controles ya
insertados, en donde indicamos el tipo de control y el nombre que hemos asignado a cada control
en su propiedad Name.

A continuación detallamos brevemente la funcionalidad de cada uno de los controles de este


formulario:
Diseño formularios
-1-
Visual Basic .Net

 Label1, Label2. Muestran un simple literal que indica al usuario lo que debe introducir
en loscontroles de texto.
 txtNombreFichero. Contiene el nombre que daremos al fichero en el que grabaremos el
texto.
 txtTexto. Contiene el texto que se va a guardar en un fichero. La diferencia de este
control, con el otro control de tipo TextBox del formulario, reside en que permite escribir
varias líneas de texto, gracias a que hemos asignado a su propiedad Multiline el valor
True. La propiedad Multiline por defecto contiene False, lo que indica que un TextBox
sólo permite introducir el texto en una única línea.
 btnGrabar. Al pulsar este botón, se tomará el texto del control txtTexto y se grabará en
un fichero con el nombre que contenga el control txtNombreFichero. Veremos como
escribir el código para un control más adelante.
 btnSalir. Al pulsar este botón, se finalizará la ejecución del programa, de igual forma
que si pulsáramos el botón de cierre del formulario o [ALT+F4].
Observamos que al asignar el nombre de algunos controles, hemos utilizado un prefijo. Así, para
un TextBox utilizamos el prefijo txt (txtNombreControl); para un Button, btn
(btnNombreControl), etc.

Esta técnica, denominada convenciones de notación, consiste en una serie de normas no


obligatorias, utilizadas a la hora de escribir el código, y que son pactadas generalmente en
equipos de trabajo, de manera que cuando un programador debe tomar parte de un proyecto
que ha estado desarrollando otro programador, la interpretación del código se facilita, y el
desarrollo del proyecto en este sentido, se dinamiza.

El programador independiente puede igualmente utilizar este tipo de convenciones, ya que gran
parte del código fuente que circula en artículos, demos, aplicaciones shareware, etc., emplean
una serie de convenciones genéricas de notación, por lo que si necesita en algún momento
compartir su código, la legibilidad del mismo se facilita.

La siguiente Tabla muestra una serie de convenciones para la codificación de los nombres de
controles, que proponemos como ejemplo, para que el lector utilice estas o alguna similar.

Control Prefijo Control Prefijo


Label lbl RadioButton rbt
Button btn GroupBox grp
TextBox txt Main Menu / Context mnu
Menu
CheckBox chk FormDialog dlg
ColorDialog y demás
controles de caja de
diálogo
ListBox lst
ComboBox cbo
Tabla Convenciones de notación para controles de formulario.

Controles y eventos
Windows es un sistema basado en eventos. Esto quiere decir que cualquier cosa que ocurra dentro
de un formulario, bien sobre el propio formulario, o a cualquiera de los controles que lo
componen, se detecta a través de un suceso o evento: pasar el ratón sobre un control, hacer clic,
Diseño formularios
-2-
Visual Basic .Net

escribir en un control de texto, cerrar el formulario, redimensionarlo, etc. Cualquier acción de este
tipo provoca el evento correspondiente.
En nuestro ejemplo actual, si ejecutamos el programa y hacemos clic sobre alguno de los botones
del formulario, no ocurrirá nada en absoluto. ¿Quiere esto decir que los botones no tienen
eventos?, la respuesta es no, los botones sí tienen eventos, así como los demás controles, y aunque
no lo percibamos, se están produciendo constantemente, lo que sucede, es que una vez que
dibujamos un control en un formulario, dicho control inicialmente no está programado para
responder a los eventos, por lo que debemos escribir el código para el evento correspondiente, en
respuesta a la acción del usuario.
Siguiendo con los botones del formulario, vamos a elegir el más sencillo de codificar, btnSalir.
Para escribir el código del evento correspondiente a la pulsación de este control, la forma más
rápida es haciendo doble clic sobre él en el diseñador del formulario, lo que abrirá el editor de
código y nos situará en un procedimiento vacío que mostramos en el Código fuente siguiente:
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles btnSalir.Click

End Sub

Código fuente. Procedimiento para el evento Click de un Button.

Se trata de un procedimiento cuyo nombre, btnSalir_Click, compuesto del nombre del control y
del evento, lo proporciona automáticamente el IDE. Recibe dos parámetros: sender y e, con
información adicional proporcionada por el entorno. Pero lo verdaderamente importante está al
final de la declaración: “Handles btnSalir.Click”. La palabra clave Handles, seguida del
nombre de un control, un punto y el nombre de un evento de ese control, le indica al entorno de
.NET Framework que debe ejecutar este procedimiento cuando se produzca el evento para ese
control. No realizaremos en este momento una explicación más detallada puesto que trataremos
este aspecto con más profundidad en temas posteriores del texto.
Este procedimiento será ejecutado cada vez que pulsemos el control btnSalir, por lo que si en tal
situación, queremos cerrar el formulario, sólo será necesario incluir la línea de código mostrada
en el Código fuente siguiente.
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles btnSalir.Click

' cerrar el formulario

Me.Close()

End Sub

Código fuente. Código del evento Click para cerrar un formulario

El método Close( ) del formulario, produce su cierre, y por ende, la finalización del programa. El
efecto es el mismo que si pulsamos el botón de cierre del formulario o la combinación [ALT+F4].
La palabra clave Me indica que estamos haciendo usando una propiedad o método del
formulario desde el interior de la clase del propio formulario; esta palabra clave será explicada
con más detalle en el tema dedicado a la programación orientada a objetos.

Diseño formularios
-3-
Visual Basic .Net

Ahora nos formularemos una interesante cuestión: -¿Y por qué sabía VS.NET cuál evento quería
codificar y me lo ha mostrado directamente?-. Pues sencillamente, VS.NET no lo sabía, lo que
sucede es que cuando hacemos doble clic sobre un control en el diseñador del formulario, se abre
el editor de código y nos sitúa en el evento por defecto del control. Y sucede que el evento por
defecto de un control Button es Click( ).

Otro modo de escribir el código de un evento


En el apartado anterior hemos mostrado el medio más fácil y rápido para escribir el código de un
evento. Sin embargo, existe otra forma de realizar esta operación, ya que en muchas ocasiones
tendremos que codificar un evento distinto al evento por defecto de un control o formulario, y en
ese caso deberemos seleccionarlo manualmente. Veamos los pasos a realizar cuando se plantee
dicha situación.
En el formulario tenemos todavía pendiente de codificar el botón btnGrabar. Lo que necesitamos
que haga este botón, es grabar el texto escrito en el control txtTexto, en un fichero al que daremos
como nombre el valor que se haya escrito en el control txtNombreFichero.
Primeramente debemos acceder al editor de código del formulario, y abrir la lista desplegable
Nombre de clase, situada en la parte superior izquierda. Ver Figura siguiente.

Editor de código mostrando la lista de nombres de clases.

Esta lista muestra el nombre del formulario y los controles que hemos incluido en él, o dicho de
otro modo, todos los objetos del formulario, teniendo en cuenta que el propio formulario también
es un objeto.
Seleccionaremos el control para el que vamos a codificar un evento: btnGrabar, y a continuación
abriremos la lista desplegable Nombre de método, situada esta vez en la parte superior derecha
del editor de código. Ver la siguiente figura.

Diseño formularios
-4-
Visual Basic .Net

Editor de código mostrando la lista de métodos

Esta lista muestra todos los eventos que podemos codificar para el control que hemos
seleccionado en el formulario. Al seleccionar el evento Click( ), se mostrará la declaración de
dicho procedimiento de evento vacía para escribir las acciones descritas anteriormente.

Grabando texto en un fichero


Una vez seleccionado el procedimiento de evento para el botón btnSalir, escribiremos las líneas
mostradas en el Código fuente siguiente que comentaremos detalladamente.
System.EventArgs) Handles btnGrabar.Click

' declarar una variable para la escritura de texto en un fichero

Dim oEscritor As StreamWriter

' crear un fichero de texto vacío y obtener un objeto StreamWriter

' para escribir en el fichero

oEscritor = File.CreateText(Environment.CurrentDirectory & "\" &

Me.txtNombreFichero.Text & ".TXT")

' escribir en el fichero el contenido del control TextBox

oEscritor.Write(Me.txtTexto.Text)

' cerrar el objeto, lo que cierra también el fichero, y eliminar el objeto

oEscritor.Close()

oEscritor = Nothing

End Sub

Evento Click() del botón btnGrabar.

En primer lugar declaramos la variable oEscritor de tipo StreamWriter. Este tipo de objetos nos
permitirán realizar la escritura de un flujo (stream) de caracteres sobre un fichero del disco.
A continuación, vamos a crear un fichero de texto en nuestro disco duro, en la misma ruta en la
que se está ejecutando la aplicación. Esto lo conseguimos llamando al método compartido
CreateText( ), del objeto File (observe el lector que al ser un método compartido no necesitamos
instanciar un objeto de la clase File y pasarlo a una variable).
El método CreateText( ) recibe como parámetro una cadena de caracteres con la ruta y el nombre
del fichero a crear. Para componer esta ruta utilizamos por un lado el objeto Environment y su
Diseño formularios
-5-
Visual Basic .Net

propiedad compartida CurrentDirectory que devuelve la ruta del directorio actual en donde se está
ejecutando la aplicación, y por otro lado la propiedad Text del control txtNombreFichero, que
contiene el valor que el usuario haya escrito en dicho TextBox. Estos dos elementos los unimos,
formando una sola cadena, mediante el operador de concatenación de VB: &.
La llamada a CreateText( ) devuelve un objeto de tipo StreamWriter, que depositamos en la
variable oEscritor, con lo que ya tenemos en la variable un objeto para escribir texto.
El siguiente paso consiste en llamar al método Write( ) de oEscritor y pasarle como parámetro
la propiedad Text del control txtTexto, que contiene el texto escrito por el usuario. Este texto es
grabado en el fichero.
Para finalizar, cerramos el objeto oEscritor llamando a su método Close( ) y le asignamos la
palabra clave Nothing para liberar los recursos del sistema que pudiera estar utilizando.
Observe el lector, como el formato de manipulación de objetos se basa en la variable que contiene
el objeto o el propio nombre del objeto (si es compartido), un punto y el nombre del método a
llamar o propiedad de la que recuperamos o a la que asignamos un valor, tal y como muestra de
forma esquemática el Código fuente siguiente.
' objetos instanciados

'---------------------

oVar.Propiedad = valor ' asignar valor a propiedad

variable = oVar.Propiedad ' recuperar valor de propiedad

oVar.Metodo([ListaParametros]) ' llamar a método

variable = oVar.Metodo([ListaParametros]) ' llamar a método y recuperar valor

' objetos compartidos

'---------------------

Objeto.Propiedad = valor ' asignar valor a propiedad

variable = Objeto.Propiedad ' recuperar valor de propiedad

Objeto.Metodo([ListaParametros]) ' llamar a método

Variable = Objeto.Metodo([ListaParametros]) ' llamar a método y recuperar valor

Modos de manipulación propiedades y métodos de objetos.

Ya sólo queda ejecutar el programa, escribir valores en los controles, y generar el fichero de texto
para comprobar que todo funciona correctamente, con ello habremos conseguido crear un
programa que tenga una aplicación algo más práctica que el típico hola mundo.

Una puntualización sobre los eventos


En un apartado anterior hemos explicado que si pulsábamos sobre un nuevo control Button,
este no realizaba ninguna acción porque no habíamos codificado todavía su evento
correspondiente. Esto puede dar lugar a confusiones, si por ejemplo, al ejecutar un programa,
en el caso de un formulario, pulsamos su botón de cierre, lo redimensionamos, etc.; o en el caso
de una lista desplegable, pulsamos sobre el botón que abre la lista de valores.

¿Por qué el formulario y controles responden a esos eventos si el programador no ha escrito


código para ellos?. Bien, en este caso estamos ante unos eventos que el programador, en principio,

Diseño formularios
-6-
Visual Basic .Net

no necesita codificar, ya que forman parte intrínseca del sistema operativo, siendo el propio
sistema el que se ocupa de que el formulario o control se comporten de acuerdo con tales eventos.

Diseño formularios
-7-

También podría gustarte