Está en la página 1de 13

4/5/2018 El control RichTextBox

El control RichTextBox

El control RichTextBox permite al usuario visualizar, ingresar y editar texto, al mismo tiempo que proporciona características
de formateo más avanzadas que el control TextBox convencional .

A continuación se incluye una descripción general del control RichTextBox (RTB) junto con resúmenes de sus propiedades,
métodos y eventos pertinentes; todo compilado a partir de los archivos de ayuda de MSDN. Este artículo concluye con una
aplicación de muestra que utiliza el RTB para implementar un editor de texto similar a WordPad.

Descripción general

El control RichTextBox proporciona una serie de propiedades que puede utilizar para aplicar formato a cualquier parte del
texto dentro del control. Para cambiar el formato del texto, primero debe ser seleccionado. Solo se puede asignar el formato
de caracteres y párrafos al texto seleccionado. Al usar estas propiedades, puede hacer que el texto sea negrita o cursiva,
cambiar el color y crear superíndices y subíndices. También puede ajustar el formato de los párrafos configurando las
sangrías izquierda y derecha, así como las sangrías colgantes.

El control RichTextBox abre y guarda archivos tanto en formato RTF como en formato de texto ASCII normal. Puede usar
métodos del control ( LoadFile y SaveFile ) para leer y escribir archivos directamente, o usar propiedades del control como
SelRTF y TextRTF junto con las declaraciones de entrada / salida de archivos de Visual Basic.

El control RichTextBox admite incrustación de objetos utilizando la colección OLEObjects . Cada objeto insertado en el
control está representado por un objeto OLEObject . Esto le permite crear documentos con el control que contiene otros
documentos u objetos. Por ejemplo, puede crear un documento que tenga una hoja de cálculo de Microsoft Excel incrustada
o un documento de Microsoft Word o cualquier otro objeto OLE registrado en su sistema. Para insertar objetos en el control
RichTextBox , simplemente arrastre un archivo (desde el Explorador de Windows 95, por ejemplo), o una parte resaltada de
un archivo utilizado en otra aplicación (como Microsoft Word), y suelte los contenidos directamente en el control.

El control RichTextBox admite portapapeles y arrastre / soltar OLE de objetos OLE. Cuando se pega un objeto desde el
portapapeles, se inserta en el punto de inserción actual. Cuando un objeto se arrastra y suelta en el control, el punto de
inserción hará un seguimiento del cursor del mouse hasta que se suelte el botón del mouse, haciendo que el objeto se
inserte. Este comportamiento es el mismo que Microsoft Word.

Para imprimir todo o parte del texto en un control RichTextBox use el método SelPrint .

Como RichTextBox es un control de datos enlazados, puede vincularlo con un control de Datos a un campo Binario o Memo
en una base de datos de Microsoft Access o un campo similar de gran capacidad en otras bases de datos (como un campo
de tipo de datos TEXT en SQL Server) .

El RichTextBox de control es compatible con casi todas las propiedades, eventos y métodos utilizados con el estándar
TextBox control, como MaxLength , MultiLine , ScrollBars , SelLength , SelStart , y SelText . Las aplicaciones que ya
usan controles TextBox se pueden adaptar fácilmente para hacer uso de controles RichTextBox . Sin embargo, el control
RichTextBox no tiene el mismo límite de capacidad de caracteres 64K del control convencional TextBox .

El control RichTextBox debe agregarse a la caja de herramientas a través del cuadro de diálogo Componentes , como se
muestra a continuación. Se accede a este cuadro de diálogo a través del menú Proyecto , elemento Componentes . Una
vez que haya marcado "Microsoft Rich Textbox Control 6.0" y haga clic en Aceptar, el control se agregará a su caja de
herramientas (también se muestra a continuación, con un círculo). Luego puede hacer doble clic para que aparezca en su
formulario, como lo haría con cualquier otro control.

El cuadro de diálogo de componentes Control RichTextBox agregado a


Toolbox

http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 1/13
4/5/2018 El control RichTextBox

Propiedades del control RichTextBox:

Propiedad Descripción
AutoVerbMenu Devuelve o establece un valor booleano que determina si un menú emergente que contiene los
verbos de la RTB (Cortar, Copiar pegar) se muestra cuando el usuario hace clic en el control de
RTB con el botón derecho del mouse. Cuando esta propiedad se establece en True, los eventos
Click y los eventos MouseDown no se producen cuando se hace clic en el control RTB con el
botón derecho del mouse. Para mostrar sus propios menús, la propiedad AutoVerbMenu debe
establecerse en False.
BulletIndent Devuelve o establece la cantidad de sangrado (entero) utilizado en el RTB cuando SelBullet se
establece en True. Las unidades para el valor se basan en la configuración de ScaleMode (twips,
píxeles, etc.) para la forma que contiene el RTB. La propiedad BulletIndent devuelve nulo si la
selección abarca varios párrafos con diferentes configuraciones de margen.
DisableNoScroll Devuelve o establece un valor booleano que determina si las barras de desplazamiento en el
control RichTextBox están deshabilitadas. La propiedad DisableNoScroll se ignora cuando la
propiedad ScrollBars se establece en 0 (Ninguno). Sin embargo, cuando ScrollBars se establece
en 1 (Horizontal), 2 (Vertical) o 3 (Ambos), las barras de desplazamiento individuales se
desactivan cuando hay muy pocas líneas de texto para desplazarse verticalmente o muy pocos
caracteres de texto para desplazarse horizontalmente en el Control RichTextBox
Nombre del archivo Devuelve o establece el nombre de archivo del archivo cargado en el control RichTextBox. Solo
los nombres de archivos de texto o archivos .rtf válidos se pueden especificar para esta
propiedad.
Esconder selección Devuelve un valor booleano que determina si el texto seleccionado aparece resaltado cuando el
RTB pierde el foco.
Bloqueado Devuelve o establece un valor booleano que indica si se pueden editar los contenidos del RTB.
(El ajuste Bloqueado a Verdadero hace que el contenido del RTB sea de solo lectura; sin
embargo, el contenido puede ser modificado por el código).
Longitud máxima Devuelve o establece un valor (Largo) que indica si hay un número máximo de caracteres que un
control RichTextBox puede contener y, si es así, especifica el número máximo de caracteres. El
valor predeterminado para la propiedad MaxLength es 0, que indica un máximo distinto al creado
por restricciones de memoria en el sistema del usuario. Cualquier número mayor que 0 indica la
http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 2/13
4/5/2018 El control RichTextBox

cantidad máxima de caracteres. Use la propiedad MaxLength para limitar el número de


caracteres que un usuario puede ingresar en un RichTextBox. Si el texto que excede la
configuración de la propiedad MaxLength se asigna a un código RichTextBox del código, no se
produce ningún error; sin embargo, solo se asigna el número máximo de caracteres a la
propiedad Texto, y los caracteres adicionales se truncan. Cambiar esta propiedad no afecta el
contenido actual de un RichTextBox,
MultiLine Devuelve o establece un valor booleano que indica si el RTB puede aceptar y mostrar múltiples
líneas de texto. (Si es False, los retornos de carro se ignoran y el texto está restringido a una
sola línea). Un control RichTextBox de líneas múltiples envuelve el texto a medida que el usuario
escribe texto que se extiende más allá del cuadro de texto. Las barras de desplazamiento se
pueden agregar a un control RichTextBox más grande usando la propiedad ScrollBars. Si no se
especifica una barra de desplazamiento horizontal, el texto en un RichTextBox de líneas
múltiples se ajusta automáticamente.

Nota: En un formulario sin botón predeterminado, presionar ENTER en un control RichTextBox


de líneas múltiples mueve el foco a la siguiente línea. Si existe un botón predeterminado, debe
presionar CTRL + ENTRAR para pasar a la siguiente línea.

Esta propiedad es de solo lectura en tiempo de ejecución.


OLEObjects Cada objeto OLE incrustado creado en el control RichTextBox se representa en la colección
OLEObjects. Puede agregar objetos manualmente a la colección OLEObjects en tiempo de
ejecución utilizando el método Agregar o arrastrando un objeto desde el Explorador de Windows
al control RichTextBox.

La colección OLEObjects es una colección estándar y admite los métodos Agregar, Elemento y
Eliminar, así como también la propiedad Recuento.
Margen derecho La propiedad RightMargin es un valor Long que se usa para establecer el límite derecho para el
ajuste de texto, el centrado y la sangría. Centrar un párrafo se basa en la parte más a la
izquierda de la parte de texto (no incluye bordes) del control RichTextBox y la propiedad
RightMargin. Además, al establecer la propiedad SelRightIndent, se basará en la configuración
actual de la propiedad RightMargin. El valor predeterminado para la propiedad RightMargin es 0 y
hará que el control configure el ajuste de texto igual a la parte más a la derecha del control
RichTextBox para que todo el texto sea visible. Nota: establecer esta propiedad en un valor muy
grande esencialmente eliminará WordWrap.
ScrollBars Devuelve o establece un valor que indica si el RTB tiene barras de desplazamiento horizontales o
verticales. Solo lectura en tiempo de ejecución. Los valores posibles son 0-rtfNone
(predeterminado, no se muestran barras de desplazamiento), 1-rtfHorizontal (barra de
desplazamiento horizontal solamente), 2-rtfVertical (barra de desplazamiento vertical solamente)
o 3-rtfBoth (se muestran barras de desplazamiento horizontal y vertical).

Para un control RichTextBox con configuración 1 (Horizontal), 2 (Vertical) o 3 (Ambos), debe


establecer la propiedad MultiLine en True.

En tiempo de ejecución, Windows implementa automáticamente una interfaz de teclado estándar


para permitir la navegación en controles RichTextBox con las teclas de flecha (FLECHA
ARRIBA, FLECHA ABAJO, FLECHA IZQUIERDA y FLECHA A LA DERECHA), las teclas
INICIO y FIN, y así sucesivamente.

Las barras de desplazamiento se muestran solo si los contenidos de RichTextBox se extienden


más allá de los límites del control. Si ScrollBars está establecido en False, el control no tendrá
barras de desplazamiento, independientemente de su contenido.

Una barra de desplazamiento horizontal aparecerá solo cuando la propiedad RightMargin esté
configurada en un valor que sea mayor que el ancho del control. (El valor también puede ser igual
o ligeramente menor que el ancho del control).
SelAlignment Devuelve o establece un valor que controla la alineación de los párrafos en un control
RichTextBox. No disponible en tiempo de diseño. Los valores posibles son nulos (la selección
actual abarca más de un párrafo con diferentes alineaciones), 0-rtfLeft (por defecto, el párrafo
está alineado a lo largo del margen izquierdo), 1-rtfRight (el párrafo está alineado a lo largo del
margen derecho) o 2 -rtfCenter (el párrafo está centrado entre los márgenes izquierdo y derecho).

http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 3/13
4/5/2018 El control RichTextBox

La propiedad SelAlignment determina la alineación de párrafo para todos los párrafos que tienen
texto en la selección actual o para el párrafo que contiene el punto de inserción si no se
selecciona texto.

Para distinguir entre los valores de Nulo y 0 al leer esta propiedad en tiempo de ejecución, use la
función IsNull con la instrucción If ... Then ... Else. Por ejemplo:

If IsNull(RichTextBox1.SelAlignment) Then
' Code to run when selection is mixed.
ElseIf RichTextBox1.SelAlignment = 0 Then
' Code to run when selection is left aligned.
...

End If
SelBold, SelItalic, Booleano Devuelva o establezca los estilos de fuente del texto seleccionado actualmente en un
SelUnderline, control RichTextBox. Los estilos de fuente incluyen los siguientes formatos: Negrita, Cursiva,
SelStrikethru Strikethru y Subrayado. No disponible en tiempo de diseño.

Los valores posibles son Nulo (la selección o el carácter que sigue al punto de inserción contiene
caracteres que tienen una combinación de los estilos de fuente apropiados), Verdadero (todos los
caracteres de la selección o el carácter que sigue al punto de inserción tienen el estilo de fuente
apropiado) o Falso ( ninguno de los caracteres en la selección o el carácter que sigue al punto de
inserción tiene el estilo de fuente apropiado).

Estas propiedades se comportan como las propiedades Negrita, Cursiva, Strikethru y Subrayado
de un objeto Font. El control RichTextBox tiene una propiedad Font y, por lo tanto, la posibilidad
de aplicar estilos de fuente a todo el texto en el control a través de las propiedades del objeto
Font del control. Utilice estas propiedades para aplicar estilos de fuente al texto seleccionado o a
los caracteres ingresados en el punto de inserción.

Normalmente, accede a estas propiedades creando una barra de herramientas en su aplicación


con botones para alternar estas propiedades individualmente.

Para distinguir entre los valores de Nulo y Falso al leer estas propiedades en tiempo de
ejecución, use la función IsNull con la instrucción If ... Then ... Else. Por ejemplo:

If IsNull(RichTextBox1.SelBold) Then
' Code to run when selection is mixed.
ElseIf RichTextBox1.SelBold = False Then
' Code to run when selection is not bold.
...

End If
SelBullet Devuelve o establece un valor que determina si un párrafo en el control RichTextBox que
contiene la selección actual o el punto de inserción tiene el estilo de viñeta. No disponible en
tiempo de diseño.

Los valores posibles son Nulo (la selección abarca más de un párrafo y contiene una mezcla de
estilos de bala y no de bala), Verdadero (los párrafos de la selección tienen el estilo de viñeta) o
Falso (los párrafos de la selección no tienen el estilo de bala).

Utilice la propiedad SelBullet para crear una lista de elementos con viñetas en un control
RichTextBox.

Para distinguir entre los valores de Nulo y Falso al leer esta propiedad en tiempo de ejecución,
use la función IsNull con la instrucción If ... Then ... Else. Por ejemplo :

If IsNull(RichTextBox1.SelBullet) Then
' Code to run when selection is mixed.
ElseIf RichTextBox1.SelBullet = False Then
' Code to run when selection doesn't have bullet style.

http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 4/13
4/5/2018 El control RichTextBox
...

End If
SelCharOffset Devuelve o establece un valor que determina si el texto en el control RichTextBox aparece en la
línea de base (normal), como un superíndice sobre la línea base, o como un subíndice debajo de
la línea base. No disponible en tiempo de diseño.

Los valores posibles son nulos (la selección tiene una combinación de caracteres con diferentes
desplazamientos), cero (normal: todos los caracteres aparecen en la línea base de texto normal),
un entero positivo (los caracteres aparecen por encima de la línea base por el número de twips
especificados). o un entero negativo (los caracteres aparecen debajo de la línea base por el
número de twips especificados).

Para distinguir entre los valores de Nulo y 0 al leer esta propiedad en tiempo de ejecución, use la
función IsNull con la instrucción If ... Then ... Else. Por ejemplo:

If IsNull(RichTextBox1.SelCharOffset) Then
' Code to run when selection is mixed.
ElseIf RichTextBox1.SelCharOffset = 0 Then
' Code to run when selection is all on the baseline.
...
End If
SelColor Devuelve o establece un valor que determina el color del texto en el control RichTextBox. No
disponible en tiempo de diseño. El valor puede ser nulo (el texto seleccionado contiene una
mezcla de diferentes configuraciones de color) o un largo que representa el color del texto
seleccionado). Si no hay texto seleccionado en el control RichTextBox, establecer esta propiedad
determina el color de todo el texto nuevo ingresado en el punto de inserción actual.
SelFontName Devuelve o establece la fuente utilizada para mostrar el texto seleccionado actualmente o los
caracteres inmediatamente después del punto de inserción en el control RichTextBox. No
disponible en tiempo de diseño. La propiedad SelFontName devuelve Null si el texto
seleccionado contiene fuentes diferentes.
SelFontSize Devuelve o establece un valor que especifica el tamaño de la fuente utilizada para mostrar texto
en un control RichTextBox. No disponible en tiempo de diseño.

El valor máximo para SelFontSize es 2160 puntos.

En general, debe cambiar la propiedad SelFontName antes de establecer los atributos de tamaño
y estilo. Sin embargo, cuando configura las fuentes TrueType en menos de 8 puntos, debe
establecer el tamaño del punto en 3 con la propiedad SelFontSize, luego establecer la propiedad
SelFontName y luego establecer el tamaño nuevamente con la propiedad SelFontSize.

Nota: Las fuentes disponibles dependen de la configuración del sistema, los dispositivos de
visualización y los dispositivos de impresión, y por lo tanto pueden variar de un sistema a otro.

La propiedad SelFontSize devuelve nulo si el texto seleccionado contiene diferentes tamaños de


fuente.
SelIndent, Devuelve o establece la configuración de margen para el párrafo (s) en un control RichTextBox
SelRightIndent, que contiene la selección actual o se agrega en el punto de inserción actual. No disponible en
SelHangingIndent tiempo de diseño. Las unidades para el valor se basan en la configuración de ScaleMode (twips,
píxeles, etc.) para la forma que contiene el RTB.

Para el (los) párrafo (s) afectado (s), la propiedad SelIndent especifica la distancia entre el borde
izquierdo del control RichTextBox y el borde izquierdo del texto que se selecciona o agrega. De
forma similar, la propiedad SelRightIndent especifica la distancia entre el borde derecho del
control RichTextBox y el borde derecho del texto que se selecciona o agrega.

La propiedad SelHangingIndent especifica la distancia entre el borde izquierdo de la primera línea


de texto en los párrafos seleccionados (según lo especificado por la propiedad SelIndent) y el
borde izquierdo de las líneas de texto subsiguientes en el (los) mismo (s) párrafo (s).

http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 5/13
4/5/2018 El control RichTextBox

Estas propiedades devuelven cero (0) si la selección abarca varios párrafos con diferentes
configuraciones de margen.
SelProtected Devuelve o establece un valor que determina si la selección actual está protegida. No disponible
en tiempo de diseño.

Los valores posibles son Nulo (la selección contiene una combinación de los caracteres
protegidos y no protegidos), Verdadero (todos los caracteres de la selección están protegidos) o
Falso (ninguno de los caracteres de la selección está protegido).

El texto protegido se ve igual en un texto normal, pero no puede ser modificado por el usuario
final. Es decir, el texto no se puede cambiar durante el tiempo de ejecución. Esto le permite crear
formularios con el control RichTextbox y tiene áreas que no pueden ser modificadas por el
usuario final.
SelStart, SelLength, SelLength : devuelve o establece la cantidad de caracteres seleccionados.
SelText
SelStart : devuelve o establece el punto de inicio del texto seleccionado; indica la posición
del punto de inserción si no se selecciona texto.

SelText - devuelve o establece la cadena que contiene el texto seleccionado actualmente;


consiste en una cadena de longitud cero ("") si no se seleccionan caracteres.
Estas propiedades no están disponibles en tiempo de diseño.
Utilice estas propiedades para tareas como establecer el punto de inserción, establecer un rango
de inserción, seleccionar subcadenas en un control o borrar texto. Usados junto con el objeto
Clipboard, estas propiedades son útiles para operaciones de copiar, cortar y pegar.
Al trabajar con estas propiedades:

Establecer SelLength a menos de 0 causa un error de tiempo de ejecución.

Establecer SelStart mayor que la longitud del texto establece la propiedad a la longitud de
texto existente; Cambiar SelStart cambia la selección a un punto de inserción y establece
SelLength en 0.

Al establecer SelText en un nuevo valor, establece SelLength en 0 y reemplaza el texto


seleccionado con la nueva cadena.
SelRTF Devuelve o establece el texto (en formato .rtf) en la selección actual de un control RichTextBox.
No disponible en tiempo de diseño.
Establecer la propiedad SelRTF reemplaza cualquier texto seleccionado en el control
RichTextBox con la nueva cadena. Esta propiedad devuelve una cadena de longitud cero ("") si
no se selecciona texto en el control.

Puede usar la propiedad SelRTF junto con la función Imprimir para escribir archivos .rtf.
SelTabCount, SelTabs Devuelve o establece el número de pestañas y las posiciones de pestañas absolutas del texto en
un control RichTextBox . No disponible en tiempo de diseño.

Sintaxis

objeto . SelTabCount [= count ]

objeto . SelTabs ( índice ) [= ubicación ]

Las sintaxis de las propiedades SelTabCount y SelTabs tienen estas partes:

Parte Descripción
objeto El control de RTB
contar Un número entero que determina el número de posiciones de las pestañas
en los párrafos seleccionados o en los párrafos que siguen al punto de
inserción.
índice Un número entero que identifica una pestaña específica. La ubicación de la
primera pestaña tiene un índice de cero (0). La última ubicación de la
pestaña tiene un índice igual a SelTabCount menos 1.

http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 6/13
4/5/2018 El control RichTextBox

ubicación Un número entero que especifica la ubicación de la pestaña designada. Las


unidades utilizadas para expresar las posiciones de las pestañas están
determinadas por el modo de escala del objeto Form u otro objeto que
contiene el control RichTextBox .

Observaciones

De forma predeterminada, presionar TAB al escribir en un control RichTextBox hace que el foco
se mueva al siguiente control en el orden de tabulación, según lo especificado por la propiedad
TabIndex . Una forma de insertar una pestaña en el texto es presionando CTRL + TAB. Sin
embargo, los usuarios que están acostumbrados a trabajar con procesadores de texto pueden
encontrar la combinación de teclas CTRL + TAB contraria a su experiencia. Puede habilitar el uso
de la tecla TAB para insertar una pestaña en un control RichTextBox al cambiar temporalmente
la propiedad TabStop de todos los controles en el objeto Form a False, mientras que el control
RichTextBox tiene el foco. Por ejemplo:

Private Sub RichTextBox1_GotFocus()


' Ignore errors for controls without the TabStop property.
On Error Resume Next
' Switch off the change of focus when pressing TAB.
For Each Control In Controls
Control.TabStop = False
Next Control
End Sub

Asegúrese de restablecer la propiedad TabStop de los otros controles cuando el control


RichTextBox pierde el foco.
TextRTF Devuelve o establece el texto de un control RichTextBox , incluidos todos los códigos .rtf.

Establecer la propiedad TextRTF reemplaza todo el contenido de un control RichTextBox con la


nueva cadena.

Puede usar la propiedad TextRTF junto con la función Imprimir para escribir archivos .rtf. El
archivo resultante puede ser leído por cualquier otro procesador de textos capaz de leer texto
codificado en RTF.

Métodos del control RichTextBox:

Método Descripción
Cargar archivo Carga un archivo .rtf o un archivo de texto en un control RichTextBox.

Sintaxis:

RichTextBox1 . Nombre de ruta de LoadFile , tipo de archivo

Donde pathname es una cadena que define la ruta y el nombre del archivo para cargar en el control
y filetype es un entero o constante que especifica el tipo de archivo cargado. Los valores válidos
para el tipo de archivo son 0 (o la constante rtfRTF ; predeterminada, especifica un archivo .rtf
válido) o 1 (constante rtfText , especifica cualquier archivo de texto).

Al cargar un archivo con el método LoadFile , el contenido del archivo cargado reemplaza todo el
contenido del control RichTextBox . Esto hará que cambien los valores de las propiedades Text y
RTFText .
Guardar el archivo Guarda el contenido de un control RichTextBox en un archivo.

Sintaxis:

RichTextBox1 . SaveFile nombre de ruta, tipo de archivo

Donde pathname es una cadena que define la ruta y el nombre del archivo para recibir el contenido
del control y filetype es un entero o constante que especifica el tipo de archivo que se guardará.
http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 7/13
4/5/2018 El control RichTextBox

Los valores válidos para el tipo de archivo son 0 (o la constante rtfRTF ; por defecto, guarda el
contenido como un archivo .rtf), o 1 (constante rtfText , guarda el contenido como un archivo de
texto).
Encontrar Busca el texto en un control RichTextBox para una cadena dada.

Sintaxis

objeto . Buscar ( cadena, inicio, final, opciones )

La sintaxis del método Find tiene estas partes:

Parte Descripción
objeto Necesario. El control de RTB
cuerda Necesario. Una expresión de cadena que desea encontrar en el control.
comienzo Opcional. Un índice de caracteres enteros que determina dónde comenzar la
búsqueda. Cada carácter en el control tiene un índice entero que lo identifica
de manera única. El primer carácter de texto en el control tiene un índice de
0.
fin Opcional. Un índice de caracteres enteros que determina dónde finalizar la
búsqueda.
opciones Opcional. Una o más constantes utilizadas para especificar características
opcionales, como se describe en Configuración.

Configuraciones

La configuración de las opciones puede incluir:

Constante Valor Descripción


rtfWholeWord 2 Determina si una coincidencia se basa en una palabra
completa o en un fragmento de una palabra.
rtfMatchCase 4 Determina si una coincidencia se basa en el caso de la
cadena especificada, así como en el texto de la cadena.
rtfNoHighlight 8 Determina si una coincidencia aparece resaltada en el
control RichTextBox .

Puede combinar múltiples opciones usando el operador Or .

Observaciones

Si se encuentra el texto buscado, el método Find resalta el texto especificado y devuelve el


índice del primer carácter resaltado. Si no se encuentra el texto especificado, el método Find
devuelve -1.

Si usa el método Find sin la opción rtfNoHighlight mientras la propiedad HideSelection es True
y el control RichTextBox no tiene el foco, el control aún resalta el texto encontrado. Los usos
posteriores del método Find buscarán solo el texto resaltado hasta que se mueva el punto de
inserción.

El comportamiento de búsqueda del método Find varía en función de la combinación de valores


especificados para los argumentos de inicio y fin . Esta tabla describe los posibles
comportamientos:

comienzo Fin Comportamiento de búsqueda


Especificado Especificado Busca desde la ubicación de inicio especificada a la
ubicación final especificada.
Especificado Omitido Busca desde la ubicación de inicio especificada hasta el
final del texto en el control.
Omitido Especificado Busca desde el punto de inserción actual hasta la

http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 8/13
4/5/2018 El control RichTextBox

ubicación final especificada.


Omitido Omitido Busca la selección actual si se selecciona texto o todo el
contenido del control si no se selecciona texto.
GetLineFromChar Devuelve el número de la línea que contiene una posición de carácter especificada en un control
RichTextBox .

Uso:

linenbr = RichTextBox1. GetLineFromChar ( charpos )

Donde charpos es un número entero largo que especifica el índice del personaje cuya línea desea
identificar. El índice del primer carácter en el control RichTextBox es 0.

Utiliza el método GetLineFromChar para averiguar qué línea en el texto de un control


RichTextBox contiene una cierta posición de carácter en el texto. Es posible que deba hacer esto
porque la cantidad de caracteres en cada línea de texto puede variar, por lo que es muy difícil
averiguar qué línea del texto contiene un carácter particular, identificado por su posición en el
texto.
Lapso Selecciona texto en un control RichTextBox basado en un conjunto de caracteres especificados.

Sintaxis

objeto . Juego de caracteres de tramo , adelante , negar

La sintaxis del método Span tiene estas partes:

Parte Descripción
objeto El control de RTB
conjunto de Necesario. Una expresión de cadena que especifica el conjunto de
caracteres caracteres que se deben buscar al extender la selección, según el valor
de negate .
adelante Opcional. Una expresión booleana que determina en qué dirección se
mueve el punto de inserción, como se describe en Configuración.
negar Opcional. Una expresión booleana que determina si los caracteres en el
conjunto de caracteres definen el conjunto de caracteres objetivo o se
excluyen del conjunto de caracteres objetivo, como se describe en
Configuración.

Configuraciones

Las configuraciones para reenviar son:

Ajuste Descripción
Cierto (Predeterminado) Selecciona el texto del punto de inserción actual o el
comienzo de la selección actual hacia adelante, hacia el final del texto.
Falso Selecciona el texto del punto de inserción actual o el comienzo de la
selección actual hacia atrás, hacia el inicio del texto.

Las configuraciones para negar son:

Ajuste Descripción
Cierto Los caracteres incluidos en la selección son aquellos que no aparecen en
el argumento conjunto de caracteres . La selección se detiene en el
primer carácter encontrado que aparece en el juego de caracteres
argumento.
Falso (Predeterminado) Los caracteres incluidos en la selección son los que
aparecen en el argumento conjunto de caracteres . La selección se

http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 9/13
4/5/2018 El control RichTextBox

detiene en el primer carácter encontrado que no aparece en el argumento


conjunto de caracteres .

Observaciones

El método Span se usa principalmente para seleccionar fácilmente una palabra o frase en el
control RichTextBox .

Si el método Span no puede encontrar los caracteres especificados en función de los valores de
los argumentos, entonces el punto o selección de inserción actual permanece sin cambios.

El método Span no devuelve ningún dato.

Ejemplo:

Este ejemplo define un par de atajos de teclado que selecciona texto en un control RichTextBox al
final de una frase (CTRL + S) o al final de una palabra (CTRL + W). Para probar este ejemplo,
coloque un control RichTextBox en un formulario. Pegue este código en el evento KeyUp del
control RichTextBox . Luego ejecuta el ejemplo.

Private Sub RichTextBox1_KeyUp (KeyCode As Integer, Shift As Integer)


If Shift = vbCtrlMask Then
Select Case KeyCode
' If Ctrl+S:
Case vbKeyS
' Select to the end of the sentence.
RichTextBox1.Lapso ".?!:", True, True
' Extend selection to include punctuation.
RichTextBox1.SelLength = RichTextBox1.SelLength + 1
' If Ctrl+W:
Case vbKeyW
' Select to the end of the word.
RichTextBox1.Lapso " ,;:.?!", True, True
End Select
End If
End Sub
Hasta Mueve el punto de inserción hasta, pero sin incluir, el primer carácter que es miembro del conjunto
de caracteres especificado en un control RichTextBox .

Sintaxis

objeto . Upto (c conjunto de caracteres , forward, negate )

La sintaxis del método Upto tiene estas partes:

Parte Descripción
objeto Necesario. El control de RTB
conjunto de Necesario. Una expresión de cadena que especifica el conjunto de
caracteres caracteres que se deben buscar al mover el punto de inserción, según el
valor de negate .
adelante Opcional. Una expresión booleana que determina en qué dirección se
mueve el punto de inserción, como se describe en Configuración.
negar Opcional. Una expresión booleana que determina si los caracteres en el
conjunto de caracteres definen el conjunto de caracteres objetivo o se
excluyen del conjunto de caracteres objetivo, como se describe en
Configuración.

Configuraciones

http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 10/13
4/5/2018 El control RichTextBox

Las configuraciones para reenviar son:

Ajuste Descripción
Cierto (Predeterminado) Mueve el punto de inserción hacia adelante, hacia el final
del texto.
Falso Mueve el punto de inserción hacia atrás, hacia el inicio del texto.

Las configuraciones para negar son:

Ajuste Descripción
Cierto Los caracteres no especificados en el argumento conjunto de caracteres se
utilizan para mover el punto de inserción.
Falso (Valor predeterminado) Los caracteres especificados en el argumento
conjunto de caracteres se utilizan para mover el punto de inserción.

Hasta el ejemplo del método

Este ejemplo define un par de atajos de teclado que mueven el punto de inserción en un control
RichTextBox al final de una oración (ALT + S) o al final de una palabra (ALT + W). Para probar
este ejemplo, coloque un control RichTextBox en un formulario. Pegue este código en el evento
KeyUp del control RichTextBox . Luego ejecuta el ejemplo.

Private Sub RichTextBox1_KeyUp (KeyCode As Integer, Shift As Integer)


If Shift = vbAltMask Then
Select Case KeyCode
' If Alt+S:
Case vbKeyS
' Move insertion point to the end of the sentence.
RichTextBox1.Hasta ".?!:", True, False
' If Alt+W:
Case vbkeyW
' Move insertion point to the end of the word.
RichTextBox1.Hasta " .?!:", True, False
End Select
End If
End Sub
SelPrint Envía texto formateado en un control RichTextBox a un dispositivo para imprimir.

Sintaxis

objeto . SelPrint ( hdc )

La sintaxis del método SelPrint tiene estas partes:

Parte Descripción
objeto El control de RTB
hdc El contexto del dispositivo que planea usar para imprimir el contenido del
control.

Observaciones

Si se selecciona texto en el control RichTextBox , el método SelPrint envía solo el texto


seleccionado al dispositivo de destino. Si no se selecciona texto, todo el contenido de
RichTextBox se envía al dispositivo de destino.

El método SelPrint no imprime texto desde el control RichTextBox . Por el contrario, envía una
copia de texto formateado a un dispositivo que puede imprimir el texto. Por ejemplo, puede enviar
el texto al objeto Impresora usando el código de la siguiente manera:

http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 11/13
4/5/2018 El control RichTextBox
RichTextBox1.SelPrint(Printer.hDC)

Observe que la propiedad hDC del objeto Printer se usa para especificar el argumento de contexto
del dispositivo del método SelPrint .

Nota: si utiliza el objeto Impresora como destino del texto del control RichTextBox , primero
debe inicializar el contexto del dispositivo del objeto Impresora imprimiendo algo así como una
cadena de longitud cero.

El evento SelChange

Se produce cuando la selección actual de texto en el control RichTextBox ha cambiado o se ha movido el punto de inserción.
Puede usar el evento SelChange para verificar las diversas propiedades que brindan información sobre la selección actual
(como SelBold ) para que pueda actualizar botones en una barra de herramientas, por ejemplo.

Solicitud de muestra

La aplicación de ejemplo para este artículo usa el control RichTextBox para implementar un editor de texto similar a WordPad
(vea la captura de pantalla a continuación):

Este artículo no contiene una descripción "paso a paso" del código para la aplicación de muestra, pero se puede aprender
mucho descargando la aplicación de muestra y trabajando con ella.

La aplicación de muestra incorpora muchas de las funciones de RichTextBox discutidas anteriormente en este artículo, y
también incorpora el uso de menús y controles discutidos en los temas que preceden a este (Barra de herramientas,
CommonDialog, StatusBar). Además, muchos de los conceptos y técnicas utilizados para los comandos de menú Archivo y
Editar en el tema anterior sobre la creación del editor de texto básico se han incorporado aquí.

http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 12/13
4/5/2018 El control RichTextBox

El desarrollo de esta aplicación de muestra no fue tan sencillo como esperaba. La mayoría de los problemas provienen del
hecho de que RichTextBox tiene capacidades incorporadas para la edición de texto básico (como soporte de atajos de
teclado como Ctrl-X y Ctrl-V para cortar y pegar), causando conflictos al intentar implementar eventos de teclado y menú
Editar comandos (como los atajos de teclado que no funcionan en absoluto, "pegado doble", etc.). Relacionado con cortar y
pegar es el objeto Clipboard, que no pude conseguir siempre "hacer lo correcto" cuando se trataba de una mezcla de texto y
gráficos. Estos problemas se resolvieron mediante el uso de una clase de Portapapeles personalizada en lugar del objeto
Portapapeles, y mediante el uso de la técnica de API de subclases para interceptar algunos de los métodos abreviados de
teclado.http://support.microsoft.com/kb/189666/EN-US ) y se resolvió mediante la solución recomendada.

La aplicación de muestra es una demostración robusta que le muestra cómo usar muchas de las funciones de RichTextBox,
así como también proporciona un "entrenamiento" con menús, la Barra de herramientas y los controles de Diálogo común.
Las características que no están presentes en la aplicación de muestra son el formato de párrafo avanzado y la configuración
de pestañas. Si estuviese dispuesto a mejorar esta aplicación, sería un buen lugar para comenzar. Requeriría familiarizarse
con las propiedades SelIndent, SelRightIndent y SelHangingIndent del RTB para el formato de párrafo y con las propiedades
SelTabCount y SelTabs para la configuración de pestañas. Además, tendrías que encontrar una forma de mostrar una regla
(las posibles sugerencias para la regla incluyen usar un PictureBox junto con etiquetas o líneas, o encontrando un control
personalizado freeware).

Descargar los archivos de proyecto para la aplicación de ejemplo aquí .

http://www.thevbprogrammer.com/ch10/10-06-richtextbox.htm 13/13

También podría gustarte