Jeegen Ответов: 2

Richtextbox как редактор C#.


Я хочу RichtextBox в качестве редактора C#, чтобы я мог писать код внутри RichTextBox так же, как писать код в Visual Studio C# и проверять код.

Что я уже пробовал:

Я пробовал это сделать, но писать пришлось долго.


string pattern = "";
     string[] keywords =
     {
         "bool","void","return","function","string","object",
     };



     foreach (var a in keywords)
     {
         pattern += a + "|";
     }



     Regex R = new Regex(pattern);
     int index = rtbExpression.SelectionStart;



     foreach (Match m in R.Matches(rtbExpression.Text))
     {
         rtbExpression.Select(m.Index, m.Value.Length);
         rtbExpression.SelectionColor = Color.Blue;
         rtbExpression.SelectionStart = index;
     }



     rtbExpression.SelectionColor = Color.Black;



     rtbExpression.ShortcutsEnabled = true;

0x01AA

Проверьте это в случае, если WPF-это вариант для вас: AvalonEdit от icsharpcode[^]

2 Ответов

Рейтинг:
0

OriginalGriff

Хм. Это будет звучать грубо, но ..... отбросьте эту идею. Это совсем не просто.
Начать здесь: подсветка синтаксиса[^] и это даст вам отправную точку - обратите внимание, что Юн не найдет там именно то, что вы ищете, на самом деле проверка этого займет гораздо больше работы - целую нагрузку больше - и это не та задача, которую я бы начал ожидать быстрых результатов даже с моими 40+ годами разработки позади меня. Я бы подумал, может быть, о человеко-годе работы, а может быть, и больше, если бы хотел что-то, что шло бы в ногу с C# по мере его развития,-и я бы это сделал!
Вы не заставите это работать только с регулярным выражением, поверьте мне!


Рейтинг:
0

RickZeeland

RichTextBox-это настоящая морока, когда вы пытаетесь реализовать что-то подобное.
Взгляните на это: Быстрое цветное текстовое поле для подсветки синтаксиса[^]