Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.
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
End Sub
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
Me.Close()
End Sub
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( ).
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
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.
oEscritor.Write(Me.txtTexto.Text)
oEscritor.Close()
oEscritor = Nothing
End Sub
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
'---------------------
'---------------------
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.
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-