Sé que el título de este mensaje se escucha medio raro ya que la respuesta es obvia: a todos nos gusta algo rico (pizza, helado u otras cosas más ricas), pero el Visual Basic 2005 tiene un control muy rico: el RichTextBox, el cual es igual que una caja de texto normal, solo que este puede contener
negritas,
cursivas, imágenes y toda la onda.
Para ejemplificar su uso, voy a crear una aplicación Windows que abra un archivo RTF y lo guarde. Voy a aprovechar la aplicación para mostrar el funcionamiento de dos controles útiles que tiene el VB 2005: el OpenFileDialog y el SaveFileDialog. Estos son dos ventanas que permiten abrir y guardar archivos respectivamente.
En primer lugar, voy a dibujar una interfaz que contenga un RichTextBox (que yo llamé
rtfTexto), 4 botones (
btnBorrar,
btnAbrir,
btnGuardar y
btnSalir), un OpenFileDialog (
frmAbrir) y un SaveFileDialog (
frmGuardar). Todo esto en una ventana llamada
frmRTF. Así se ve en la vista diseño:
Para divertirnos un poco, voy a manipular el evento Resize del formulario para que cambie de tamaño mi caja de texto y los botones se acomoden cada vez que el usuario cambia de tamaño la ventana. Esto lo hago en la vista de código seleccionando
(frmRTF eventos) como se ve en esta figura:
Y del otro lado, elijo el evento
Resize, como se ve así:
El código para este evento sería este:
Creo que está bastante claro. Solo cambio las propiedades
Width y
Height del RichTextBox (
rtfTexto) de acuerdo al tamaño de la ventana (
Me). También cambié la propiedad
Top de los botones para que se alinearan de acuerdo a la altura de la ventana.
Una función muy simple es el del primer botón (que yo llamé
btnBorrar) que se encarga de dejar en blanco la caja de texto "rico". Solo usa un método (función) del texto rico que lo b orra todo, el
Clear. Así queda el código:
El código que abre un archivo (del botón
btnAbrir) declara 3 variables para contener el nombre del archivo (
strArchivo), la extensión del archivo (
strExtension) y la manera en que se va a guardar el archivo al disco (
intTipoArch). Después le digo la extensión de archivo por defaúlt (en mi caso quiero que abra archivos con extensión RTF). Esto se establece con la propiedad
DefaultExt del objeto OpenFileDialog (que en mi caso se llama
frmAbrir). Luego establezco la lista de los tipos de archivos que aparecerá en la ventana. Para esto, le digo a la propiedad
Filter que ponga dos opciones en la ventana: la primera va a decir
Archivos RTF y si el usuario lo selecciona, se van a ver todos los archivos con extensión RTF (*.RTF). La segunda opción va a decir
Archivos de texto y al seleccionarlo se van a ver todos los archivos que tienen la extensión TXT. Al tener las extensiones y filtros listos, uso el método
ShowDialog() para que el usuario diga el archivo que quiere abrir. Para completar la parte de inicialización de
frmAbrir, Cuando el usuario selecciona el archivo en
frmAbrir, a
strArchivo le asigno el nombre del archivo seleccionado por el usuario (
frmAbrir.FileName).
Verifico que el usuario seleccione un archivo, revisando la longitud del nombre del archivo seleccionado. En caso que todo va bien (el usuario seleccionó un archivo), a
strExtension le asigno la extensión del archivo seleccionado (tomo las 4 últimas letras de
strArchivo y los convierto a mayúsculas). Si el archivo tiene extensión TXT, a una variable le digo que es un archivo de texto (lo voy a usar más adelante, no te apures) y si es un RTF le establezco otro valor.
Lo último que hago es cargar el archivo a la caja de texto "rico" (
rtfTexto). Esto se hace usando la función
LoadFile. Solo necesita saber el nombre del archivo y el tipo del archivo. Con esos datos, ya puede abrir el archivo y ponerlo en
rtfTexto. Este es el código para abrir el archivo RTF terminado:
Guardar un archivo es casi idéntico. La única diferencia es que en lugar de usar la función
LoadFile para abrir el archivo, uso la función
SaveFile para guardarlo en la ubicación seleccionada por el usuario. Este es el código:
Ahora va lo complicado: finalizar el programa (jeje). Aquí está el código. Como está tan complicado, ni lo explico:
Con esto terminamos esta aplicación. ¡Hasta la próxima!