Страница: 1 |
Страница: 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
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #1
Добавлено: 02.05.09 08:48
Чувак, ты по ходу форумом малость ошибся. Хотя может здесь тебе и помогут...
Номер ответа: 2
Автор ответа:
Skywalker
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
Автор ответа:
MegaÐefender
Вопросов: 19
Ответов: 313
Web-сайт:
Профиль | | #3
Добавлено: 02.05.09 11:28
Зачем тебе это нужно?
Номер ответа: 4
Автор ответа:
Стас
Вопросов: 5
Ответов: 13
Профиль | | #4
Добавлено: 02.05.09 18:13
ну вопервых форумом я не совсем ошибся патамушто C# и vb.net похожи
с этим тоже проблема, уже пробовал, не помогает.
для самосовершенствования.
может какие нить API функции есть для скрытия или смена цвета выделения?
Номер ответа: 5
Автор ответа:
Skywalker
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
Автор ответа:
Skywalker
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 не понимает.