Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB .NET > Как в RichTextBox выделить строку по индексу символа? |
Автор: Exception 29.12.2004, 11:39 | ||
Если требуется выделить строку в которой находится символ с известным индексом (например, строку, в которой находится курсор), можно воспользоваться вот этим кодом. Процедура запомнит в n номер строки в которой находится символ с индексом CharIndex. Затем в первом цикле, перебирая символы от CharIndex в сторону начала, запомнит в p1 индекс первого символа строки с номером n, а во втором цикле, перебирая символы от CharIndex в сторону конца текста, запомнит в p2 индекс последнего символа. На случай если в теле одного или обоих циклов не выполнится условие, перед циклами выполняется инициализация переменных p1 = 0 и p2 = ln(ln - длина текста). Впрочем p1 и так равна нулю, но для наглядности я все же написал инициализацию для нее. И еще можно обойтись без переменной i, указав вместо нее в первом цикле p1, а во втором - p2, но опять таки для большей наглядности не стал этого делать.
Вызвать например так: SelectLineByCharIndex(rtf, rtf.SelectionStart) Выделит строку в которой находится курсор, где rtf - ваш RichTextBox |