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!