Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/09/2012, 22:10
gedard1
 
Fecha de Ingreso: septiembre-2012
Mensajes: 3
Antigüedad: 12 años, 3 meses
Puntos: 0
Colorear una palabra en richtextbox en C#

Buenas tardes estimados
Tengo un problema con mi codigo, la idea es que tiene que cambiarle el color a una palabra en el richtextbox si esa palabra concuerda con el grupo de palabras reservadas, es decir si do aparece y do es palabra reservada, entonces do aparecera con un color rojo, el problema que tengo es que si ingreso 3 veces seguidas la palabra me tira el error diciendo que el fichero inicio tiene el valor de -1.

Les dejo el codigo aqui abajo

Código:
public partial class Form1 : Form
    {
        string[] Reservadas = new string[] { "else", "if" };
          public Form1()
        {
            InitializeComponent();
            this.richTextBox1.TextChanged += (ob, ev) =>
                {
                    var palabras = this.richTextBox1.Text.Split(new char[] { ' ' },                
                    StringSplitOptions.RemoveEmptyEntries);
                    var resultado = from b in Reservadas
                                    from c in palabras
                                  
                                    where c == b
                                    select b;

                    int inicio = 0;
                    foreach (var item in resultado)
                    {
                        inicio = this.richTextBox1.Text.IndexOf(item, inicio);
                        this.richTextBox1.Select(inicio, item.Length);
                        this.richTextBox1.SelectionColor = Color.Red;
                        this.richTextBox1.SelectionStart = this.richTextBox1.Text.Length;
                        inicio++;
                    }

                    this.richTextBox1.SelectionColor = Color.Black;
                    this.richTextBox1.SelectionStart = this.richTextBox1.Text.Length;

                };
Ojala me pueda ayuda con mi duda.

Saludos!