Как показать количество строки в RichTextBox C#

Я делаю простой текст и редактор сценариев с выделением кода. Для этого я использую RichTextBox. Но я не знаю, как заставить его показать числа строк на левой стороне, как в VS или Блокноте ++. Есть ли какое-либо решение?

10
задан fonix232 2 April 2010 в 14:48
поделиться

3 ответа

Я попытался повторно использовать код из статей codeproject, на которые есть ссылки в другом месте, но каждый вариант, на который я смотрел, казался слишком неуклюжим.

Итак, я создал еще один RichTextBoxEx, который отображает номера строк.

Нумерацию строк можно включить или выключить. Это быстро. Прокручивается чисто. Вы можете выбрать цвет чисел, цвета фона для градиента, толщину границы, шрифт, использовать ли ведущие нули. Вы можете выбрать нумерацию строк «как показано» или в соответствии с жесткими символами новой строки в RTB.

Примеры:

enter image description here

enter image description here

enter image description here

У него есть ограничения: числа отображаются только слева. Вы могли бы изменить это без особых усилий, если бы вам было не все равно.

Код разработан как проект C #. Хотя это часть более крупного «решения» (инструмента визуализации XPath), настраиваемый RichTextBox упакован как отделяемая сборка и готов к использованию в ваших новых проектах. В Visual Studio просто добавьте ссылку на DLL, и вы можете перетащить ее на поверхность разработки. Вы можете просто отбросить другой код из более крупного решения.

См. Код

20
ответ дан 3 December 2019 в 20:03
поделиться

Я бы сохранил каждую строку в классе, у которого есть методы для публикации в richtextbox. В этом методе вы можете добавить номер строки в зависимости от ее положения в классе.

Например (очень приблизительно):

class myText
{
    public List<string> Lines;

    public string GetList()
    {
        StringBuilder sb = new StringBuilder();
        int i = 0;
        foreach (string s in Lines)
        {
            sb.AppendFormat("{0}: {1}", i, s).AppendLine();
            i++;
        }
        return sb.ToString();
    }
}
0
ответ дан 3 December 2019 в 20:03
поделиться

Вы можете добиться этого, нарисовав свой собственный элемент управления. Вот пример, как нарисовать себя ссылка

-1
ответ дан 3 December 2019 в 20:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: