Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (3)

Лучшие ответы пользователя

Все ответы (5)
  • Подсветка синтаксиса в RichTextBox

    @noname_d
    Насколько я знаю, это возможно сделать только при помощи свойства SelectionColor. Т.е. сперва нужно установить Selection на нужный участок текста, а затем задать цвет. Примерно так:

    private void richTextBox1_TextChanged(object sender, EventArgs e)
    {
        var currentSelStart = richTextBox1.SelectionStart;
        var currentSelLength = richTextBox1.SelectionLength;
    
        richTextBox1.SelectAll();
        richTextBox1.SelectionColor = SystemColors.WindowText;
    
        var matches = Regex.Matches(richTextBox1.Text, @"\bclass\b");
        foreach (var match in matches.Cast<Match>())
        {
            richTextBox1.Select(match.Index, match.Length);
            richTextBox1.SelectionColor = Color.Blue;
        }
    
        richTextBox1.Select(currentSelStart, currentSelLength);
        richTextBox1.SelectionColor = SystemColors.WindowText;
    }

    Разумеется, заново раскрашивать весь текст при каждом изменении неправильно. Это нужно делать более оптимальным образом. Кроме того, желательно отключить перерисовку на время раскрашивания, иначе возможны нежелательные моргания при большом размере текста. В примере этого нет, но тут вроде есть решение.
    Ответ написан
    Комментировать
  • Какие должны быть инструменты планирования разработки до написания кода?

    @noname_d
    Для .NET есть NClass. Легкий, без лишних наворотов инструмент для создания диаграммы классов. Я, правда, им пользовался в основном для генерации диаграмм из уже скомпилированных сборок, а не по прямому назначению, так что ручаться за удобство не могу. Но может окажется полезен.

    P.S. Сам, если проект более-менее сложный, проектирую пока на листочке. Если что-то попроще, то прямо в коде делаю "набросок" в виде набора интерфейсов (пытаясь учесть возможные варианты расширения, но без особого фанатизма), а затем уже приступаю к реализации. Как-то так.
    Ответ написан
    Комментировать