locked
Как я могу программно позиционировать курсов на заданной строке и символе в RichTextBox? RRS feed

  • Общие обсуждения

  • Элемент управления RichTextBox содержит свойство Lines – массив строк (в котором одному элементу соответствует одна строка текста). Каждая строка содержит свойство Length (Длинна). С этой информацией вы можете позиционировать курсор выделения, используя подобный код:

    Code Block
            private void GoToLineAndColumn(RichTextBox rtb, int line, int column)
            {
                rtb.Focus();
                if (line < 0 || column < 0)
                {
                    rtb.SelectionStart = 0;
                }
                else
                {
                    if (line > rtb.Lines.Length - 1)
                    {
                        rtb.SelectionStart = rtb.GetFirstCharIndexFromLine(rtb.Lines.Length - 1)
                          + rtb.Lines[rtb.Lines.Length - 1].Length;
                    }
                    else
                    {
                        int firstCharIndexOfline = rtb.GetFirstCharIndexFromLine(line);
                        int textlengthOfline;
                        textlengthOfline = rtb.Lines[line].Length;
                        if (column > textlengthOfline)
                            column = textlengthOfline;
                        rtb.SelectionStart = firstCharIndexOfline + column;
                    }
                }
    }
    


    Для связи [Mail]
    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 23:26 MSDN Forums consolidation (От:Разработка Windows-приложений)
    24 марта 2010 г. 15:46
    Модератор