Я пытаюсь изменить цвет символа, если ввод текстового поля соответствует значению в текстовом поле.Изменение цвета символа с ввода
char key = e.KeyChar;
for(int i = 0; i < rchtxtbox.Text.Length; i++)
{
char currentLetter = rchtxtbox.Text[i];
if (key == currentLetter)
{
rchtxtbox.SelectionStart = 0;
rchtxtbox.SelectionLength = 1;
rchtxtbox.SelectionColor = Color.White;
rchtxtbox.SelectionBackColor = Color.LightGreen;
}
}
Он выделяет текущую букву только в том случае, если она соответствует. Например, если слово в текстовом поле богатое является «воздушным шаром», а введенный первый ввод «b», он соответствует и меняет цвет, но если следующая буква была добавлена «ba», функция перестает работать и не меняет цвет. Другие альтернативы, которые я пробовал, в конечном итоге меняют цвета всех совпадающих символов. Я хочу, чтобы он мог покрасить его по характеру, если он соответствует, есть ли способ сделать это легко?
Вам нужно правильно установить 'rchtxtbox.SelectionStart» к соответствующему индексу характера. В вашем коде начальная точка выбора равна нулю, поэтому всегда будет выделяться первый символ. –
Я попытался изменить значение на значение i, но это подсвечивает все совпадения. Пример, если бы я имел «plop», если бы я набрал «p», он выделил бы как начало, так и конец p – Jed5931
Ok, а затем получить последний ключевой символ из текстового поля, получить его индекс и сопоставить один и тот же индексный символ из richtextbox, если совпадение подсвечивает, что один вместо запуска цикла –