У меня возникли трудности с созданием кода, способного подбирать определенные слова и их цвет. настоящее время я использую этот код:Окраска программирования на основе richtextbox
private void Colorize(string word, Color color, int startIndex)
{
if (this.richTextBox1.Text.Contains(word))
{
int index = -1;
int selectStart = this.richTextBox1.SelectionStart;
while ((index = this.richTextBox1.Text.IndexOf(word, (index + 1))) != -1)
{
this.richTextBox1.Select((index + startIndex), word.Length);
this.richTextBox1.SelectionColor = color;
this.richTextBox1.Select(selectStart, 0);
this.richTextBox1.SelectionFont = new Font(richTextBox1.Font, FontStyle.Regular);
this.richTextBox1.SelectionColor = Color.Black;
}
this.richTextBox1.SelectionColor = Color.Black;
}
}
Проблема заключается в том, что, когда текст RichTextBox слишком велик, он висит и идет сверху вниз, есть ли способ, чтобы мгновенно цвет ключевой? Я делаю базовую IDE, но мне нужны ключевые слова на основе java.
Любая ошибка извините, что я использовал переводчик Google.
«зависаний» Означает ли это на самом деле висит или только что это занимает слишком много времени? Вы можете использовать 'richTextBox1.SupendLayout' и' richTextBox1.ResumeLayout', чтобы предотвратить обновление экрана до его завершения. Помимо этого вы можете попробовать изменить свойство 'richTextBox1.Rtf' напрямую с правильными кодами шрифтов и цветов, но это довольно icky .. – TaW
Похоже, вы хотите реализовать подсветку синтаксиса? Если это так, вы должны использовать существующую библиотеку/решение.См. Этот вопрос для некоторых опций: http://stackoverflow.com/questions/2809545/how-to-create-syntax-highlighting-text-box. Вопрос старен, однако, с тех пор, возможно, будут более эффективные варианты. –
http://stackoverflow.com/a/3282911/17034 –