Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.141.192.219] |
|
Сообщ.
#1
,
|
|
|
Простейший текстовый редактор, в richTextBox1 открываю текстовый файл , и потом крашу ключевые слова
private void ColorText() { string[] words = {"select", "from", "where" }; for (int j = 0; j < words.Length; j++) { int i = 0; while (i <= richTextBox1.Text.Length - words[j].Length) { i = richTextBox1.Text.IndexOf(words[j], i); if (i < 0) break; richTextBox1.SelectionStart = i; richTextBox1.SelectionLength = words[j].Length; richTextBox1.SelectionColor = Color.Blue; i += words[j].Length; } } } а вот как сделать чтобы при вводе в richTextBox1 с клавиатуры после нажатия пробел написанное слово красилось не знаю , подскажите пожалуйста. Добавлено Сейчас пробую так private void richTextBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Space) { } } а вот дальше , по ходу надо как то введенный текст запоминать в промежуточный буфер , а по нажатию "пробел" сверять буфер с ключевыми словами и если это ключевое слово то красить |
Сообщ.
#2
,
|
|
|
При анализе проблемы ты упустил,что есть по крайней мере 4 механизма изменения текста в текстовом поле. Даже если ты исключишь три из них (меню, мышка, визменен е тевста кодом программы),пользователь клавиатурой создаст текст, не совпадающий с тем набором букв, которые ты нсобрал в событии keyDown. Например, нажатие cntl-v изменяет текст не на 2 буквы и может добавить несколько пробелов. Имхо, надо анализировать весь текст после каждого изменения текста в onTextChange.
|
Сообщ.
#3
,
|
|
|
Цитата MIF @ При анализе проблемы ты упустил,что есть по крайней мере 4 механизма изменения текста в текстовом поле. спасибо за ответ , у меня будет такой упрощенный вариант изменение текста только с клавиатуры, т.е. как только нажали пробел надо проанализировать слово которое напечатали только что перед пробелом и если это ключевое слово то красить как то так Добавлено мне вот посоветовали пару вариантов https://ru.stackoverflow.com/questions/4210...%B8-richtextbox https://github.com/jacobslusser/ScintillaNET https://www.codeproject.com/Articles/161871...ax-highlighting ну и еще варианты пересмотрел исходники блокнотиков++ и всякие другие , так же на github и на codeproject.com перерыл и перепробовал вагон и маленькую тележку, но это не то мне сейчас требуется конкретный ответ на четкий вопрос , покрасить слово введенное с клавиатуры перед нажатием пробел т.е. пишу слово именно в richTextBox1 именно с клавиатуры как только нажал на клавишу "пробел" - анализ и если слово из массива ключевых слов то красим его в заданный цвет |
Сообщ.
#4
,
|
|
|
Прочитай мое собшение ешо раз.
Ответь на 2 вопроса: 1. сколько пробелов добавляетsя в тексте, если пользователь нажимает Ctr-A + Ctrl-C + Ctrl-V клавишы? 2. Какое слово получается при нажатий клавиш S+E+L+E+C+T+I+O+N+LeftArrow+LeftArrow+LeftArrow+Space? Selection? Добавлено Нуда, в https://ru.stackoverflow.com/questions/4210...%B8-richtextbox тебе посоветовали тоже самое: анализировать весь текст. |
Сообщ.
#5
,
|
|
|
Все спасибо нашел ответ
https://ru.stackoverflow.com/questions/5701...тка-текста?rq=1 |