Страница: 1 |
Вопрос: Как в RichTextBox сделать невидимым выделение | Добавлено: 01.05.09 23:51 |
Автор вопроса: ![]() |
Здрасте!!! Я пишу программу для подсветки синтаксиса, использую для этого RichTextBox. Вот код обработки:
//Этот метод используется в классе который унаследован от RichTextBox во время обработки события OnTextChanged void Syntax() { try { pars1.Clear();//класс который находит позиции всех слов pars1.Coment = Comentaries; int[] IndexStart, IndexLenght; Color[] colr; int n, n1, n2; string s; n = this.SelectionStart; n1 = this.GetLineFromCharIndex(n); n2 = this.GetFirstCharIndexFromLine(n1); if (this.Lines != null) { if (this.Lines.Length != 0 && n1 <= this.Lines.Length - 1) { s = this.Lines[n1]; pars1.FindData(s, Data); IndexStart = pars1.IndexData.IndexStart.ToArray(); IndexLenght = pars1.IndexData.IndexLenght.ToArray(); colr = pars1.IndexData.color.ToArray(); if (IndexStart != null) { for (int i = 0; i <= IndexStart.Length - 1; i++) { int start = n2 + IndexStart[i]; int Lenght = IndexLenght[i]; this.Select(start, Lenght); this.SelectionColor = colr[i]; this.SelectionStart = n2 + IndexStart[i] + IndexLenght[i] + 1; } } this.SelectionStart = n; this.SelectionColor = Color.Black; this.SelectionLength = 0; } } } catch { } } И проблема в том, что с каждым разом как строка становиться длиннее я вижу мелькающий процесс выделения текста, а это мне не нравитса. Так вот, можно ли как то скрыть этот процесс? |
Ответы | Всего ответов: 7 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 02.05.09 08:48 |
Чувак, ты по ходу форумом малость ошибся. Хотя может здесь тебе и помогут... |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 300-70-6пятьЪ Вопросов: 62 Ответов: 545 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 02.05.09 09:36 |
ну я бы изучил спецификацию RTF и просто дописывал в строку теги (или как их назвать), типа вставляешь всякие {\i курсивный текст}
http://www.microsoft.com/downloads/details.aspx?FamilyID=ac57de32-17f0-4b46-9e4e-467ef9bc5540&displaylang=en спецификация 1.8 для word 2003 |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 19 Ответов: 313 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 02.05.09 11:28 |
Зачем тебе это нужно? |
Номер ответа: 4 Автор ответа: ![]() ![]() Вопросов: 5 Ответов: 13 |
Профиль | Цитата | #4 | Добавлено: 02.05.09 18:13 |
Чувак, ты по ходу форумом малость ошибся. Хотя может здесь тебе и помогут...
ну вопервых форумом я не совсем ошибся патамушто C# и vb.net похожи ну я бы изучил спецификацию RTF и просто дописывал в строку теги (или как их назвать), типа вставляешь всякие {\i курсивный текст}
с этим тоже проблема, уже пробовал, не помогает. Зачем тебе это нужно?
для самосовершенствования. может какие нить API функции есть для скрытия или смена цвета выделения? |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 300-70-6пятьЪ Вопросов: 62 Ответов: 545 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 03.05.09 19:42 |
интересно в чем это может быть проблема подготовить заранее текст с тегами и присвоить его контролу...
в WPF мона в виде xml задать ртфку и оно также ничо не выделяет на ходу:
|
Номер ответа: 6 Автор ответа: ![]() ![]() Вопросов: 5 Ответов: 13 |
Профиль | Цитата | #6 | Добавлено: 03.05.09 20:42 |
я не в WPF а в Winapplication работаю, а там немного по другому, но всеравно если мона опиши свой код: куда событие BuildFriendsText вставляется и как я понял в качестве параметра список подсвечиваемых слов? |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 300-70-6пятьЪ Вопросов: 62 Ответов: 545 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 04.05.09 00:27 |
не, у меня были строки, в которых есть ники, я до этого их все пометил \snickСАМ_НИК\enick
в процедуру передаются эти строки, для каждой создается новый параграф, и выражение \snick заменяется на <Run Foreground="#FF5B79C1"> типа сделать цвет шрифта такой-то, а все \enick заменяются на </Run>, ну а потом просто xml загружается в richtextbox, но ет новый в WPF, обычный xml не понимает. |
Страница: 1 |
|