elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  (SOLUCIONADO) Cambiar el color de una línea en un richtextbox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (SOLUCIONADO) Cambiar el color de una línea en un richtextbox  (Leído 11,095 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
(SOLUCIONADO) Cambiar el color de una línea en un richtextbox
« en: 27 Noviembre 2012, 12:31 pm »

Pues eso, ¿Sería posible cambiar el color de UNA sola línea de este richtextbox para que la línea de "Processing: ..." saliera en amarillo por ejemplo?

Y otra pregunta relacionada, ¿Sería posible cambiar solamente UNA palabra de color?

Agradezco cualquier información!



« Última modificación: 27 Noviembre 2012, 13:41 pm por EleKtro H@cker » En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: Cambiar el color de una línea en un richtextbox
« Respuesta #1 en: 27 Noviembre 2012, 12:48 pm »

Por supuesto el RichTextBox, existe precisamente para esas cosas:

Código
  1.       RichTextBox1.Select(INDEX, LONGITUD)
  2.  
  3.        RichTextBox1.SelectionColor = COLOR
  4.  
  5.        RichTextBox1.Select(0, 0)


En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Cambiar el color de una línea en un richtextbox
« Respuesta #2 en: 27 Noviembre 2012, 13:41 pm »

Gracias Keyen, ese método solo sirve para seleccionar un rango select(A, B), estaría bien si se pudiera indicar el inicio de la línea select(Linea, A, B), pero a menos que idee la forma de sumar cuando mide cada string que voy insertando en el richtextbox... en fin, mucho consumo de tiempo y de proceso para mi app, así que lo dejo así:

Código
  1. consolebox.Find("Processing: ")
  2. consolebox.SelectionColor = Color.Yellow


Saludos!
En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: (SOLUCIONADO) Cambiar el color de una línea en un richtextbox
« Respuesta #3 en: 27 Noviembre 2012, 13:54 pm »

no es dificil,tenes que hacer un simple For de 0 hasta Lines.Length y ahi dentro usar GetFirstCharIndexFromLine, eso te devuelve el inicio de la linea y con richTextBox1.Lines(i).Length te devuelve el final de la linea, esos 2 valores se lo pones al .Select() y listo.

saludos.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: (SOLUCIONADO) Cambiar el color de una línea en un richtextbox
« Respuesta #4 en: 27 Noviembre 2012, 14:04 pm »

Pues he probado esto, y ralentiza el proceso sobre un 50% (obviamente cuanto mayor séa el contenido del richtextbox...)

Código
  1.              Dim textEnd As Integer = consolebox.TextLength
  2.                Dim index As Integer = 0
  3.                Dim lastIndex As Integer = consolebox.Text.LastIndexOf("Processing")
  4.  
  5.                While index < lastIndex
  6.                    consolebox.Find("Processing", index, textEnd, RichTextBoxFinds.None)
  7.                    consolebox.SelectionColor = Color.Yellow
  8.                    index = consolebox.Text.IndexOf("Processing", index) + 1
  9.                End While
En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: (SOLUCIONADO) Cambiar el color de una línea en un richtextbox
« Respuesta #5 en: 27 Noviembre 2012, 14:07 pm »

Has lo que dice seba123neo, el For solo dará tantas vueltas como lineas tenga el RichTextBox, será más rápido que el código que tienes actualmente.
En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: (SOLUCIONADO) Cambiar el color de una línea en un richtextbox
« Respuesta #6 en: 27 Noviembre 2012, 14:24 pm »

algo asi:

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  4.        For i As Integer = 1 To 500
  5.            RichTextBox1.Text += "Linea " & i & vbNewLine
  6.        Next
  7.    End Sub
  8.  
  9.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  10.        For i As Integer = 0 To RichTextBox1.Lines.Length - 1
  11.            Dim first As Integer = RichTextBox1.GetFirstCharIndexFromLine(i)
  12.            RichTextBox1.Select(first, RichTextBox1.Lines(i).Length)
  13.            RichTextBox1.SelectionBackColor = If((i Mod 2 = 0), Color.Red, Color.White)
  14.            RichTextBox1.SelectionColor = If((i Mod 2 = 0), Color.Black, Color.Green)
  15.        Next
  16.    End Sub
  17. End Class

saludos.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: (SOLUCIONADO) Cambiar el color de una línea en un richtextbox
« Respuesta #7 en: 27 Noviembre 2012, 14:24 pm »

EDITO: te me adelantaste Seba, ahora lo pruebo!

EDITO2: Tu ejemplo selecciona lineas enteras, yo necesito seleccionar la palabra "Processing" de cada linea

EDITO3: Ya está, como la palabra "Processing" empieza al principio de cada línea solo tengo que medir la longitud de la palabra y usarla como "final de índice" xD

GRACIAS



Me dice que el ínidce está fuera de la matriz, que lío:
Código
  1.                For line = 0 To consolebox.Lines.Length
  2.                    a = consolebox.GetFirstCharIndexFromLine(line)
  3.                    b = consolebox.Lines(line).Length()
  4.                    MsgBox(a & "," & b)
  5.                    consolebox.Select(a, b)
  6.                    consolebox.SelectionColor = Color.Yellow
  7.                Next
« Última modificación: 27 Noviembre 2012, 14:37 pm por EleKtro H@cker » En línea

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: (SOLUCIONADO) Cambiar el color de una línea en un richtextbox
« Respuesta #8 en: 27 Noviembre 2012, 14:30 pm »

EleKtro,

al parecer evaluas una línea mas que realmente no tienes.

0 .. lines.length - 1 sería la manera correcta de recorrer el array.

Saludos!
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: (SOLUCIONADO) Cambiar el color de una línea en un richtextbox
« Respuesta #9 en: 27 Noviembre 2012, 14:38 pm »


0 .. lines.length - 1 sería la manera correcta de recorrer el array.


Le tuve que restar una más:

Código
  1.                For i As Integer = 0 To consolebox.Lines.Length - 2
  2.                    Dim first As Integer = consolebox.GetFirstCharIndexFromLine(i)
  3.                    '  MsgBox(first)
  4.                    consolebox.Select(first, 10)
  5.                    consolebox.SelectionColor = Color.Yellow
  6.                Next

Listo! Gracias.
« Última modificación: 27 Noviembre 2012, 14:53 pm por EleKtro H@cker » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines