Estoy haciendo una aplicacion que debe sacar un report a medida que van saliedo resultados de unos procesos en segundo plano.
Pa ello uso un richtextbox donde voy incluyendo a medida que se crean las lineas del informe.
Mi idea era ir escribiendo las diferentes notificaciones en diversos colores. Es decir El error que aparezca la linea en rojo, las notificaciones en azul, etc.
Pues bien para ello usé el siguiente algoritmo:
Código:
do while not RsRecordset.EOF
RichTextBox1.Text = Richtextbox1.text & RsRecordset!Link
RichTextBox1.SelStart = Richtextbox1.text - len(RsRecordset!Link)
RichTextBox1.SelLength = len(RsRecordset!Link)
if RsRecordset!Status = "Error" then
RichTextBox1.SelColor = vbred
elseif RsRecordset!Status = "Info" then
RichTextBox1.SelColor = vbBlue
else
RichTextBox1.SelColor = vbBlack
end if
RichTextBox1.SelStart = 0
loop
Código:
El problema (lo vi por debugger) que al insertar texto nuevo en la RTB, se pone del ultimo color seleccionado. Es decir lo que antes estaba de color rojo, si la linea siguiente debe ser verde, al insertar el texto se pone todo lo anterior de color rojo.
He buscado por google y lo que encuentro son rutinas que buscan el texto deseado y lo colorean una vez todo el texto a sido escrito. Mi idea era ir coloreando el texto deseado a medida que se escribe.
La solucion que aplico ahora es filtrar el texto una vez escrito y coloreo aquellas palabras clave con su color correspondiente pero el efecto cuando hay mucho texto en la RTB es bastante feo.
Alguien podria ayudarme?
Gracias.