Как выделить подсветку синтаксиса в элементе управления richtextbox КАК ТИПЫ ПОЛЬЗОВАТЕЛЯ и ИСПОЛЬЗОВАНИЕ АЛЬТЕРНАТИВНЫХ [] ключевых слов. Я скоро опубликую легкий блокнот в Интернете, и я хочу, чтобы у него была подсветка синтаксиса. Я использую формы Windows. Может ли кто-нибудь отправить пример кода?
Как выделить синтаксис в RichTextBox [С#]?
Ответ 1
- подсветка синтаксиса RichTextBox (говорит о самом RichTextBox - минимальные функции, но именно то, что вы просили здесь)
- Текстовое поле /richtextbox с подсветкой синтаксиса? [С#] (в основном речь идет о других способах его выполнения).
Ответ 2
Scintilla - отличный редактор исходного кода, который включает подсветку синтаксиса среди целого ряда других функций. Вы можете встроить его в свое приложение, и есть .NET wrapper.
С помощью Scintilla вы можете указать ключевые слова, и затем будет применяться подсветка синтаксиса по мере ввода.
Ответ 3
Используете ли вы WinForms или WPF?
Если WPF, вы можете посмотреть AvalonEdit. Он бесплатный и с открытым исходным кодом, и он используется в SharpDevelop (open source IDE).
Ответ 4
Вы можете изменить шрифт выбранных слов в richtextbox. Взгляните на свойства Select и SelectedFont элемента управления.
Но, по сути, вам нужно прокручивать слова, проверять, присутствует ли слово в ваших ключевых словах, а затем изменить шрифт, используя вышеупомянутые свойства.
Ответ 5
Не совсем ответ на ваш вопрос, но вы посмотрели компонент текстового редактора из SharpDevelop? Он довольно легкий (< 200kB IIRC), может быть легко встроен в приложения WinForms и имеет подсветку синтаксиса для нескольких встроенных языков.
В противном случае вы можете посмотреть эту страницу CodeProject. Он переформатирует RTF во время ввода, что не очень эффективно для больших файлов, и содержит несколько жужжащих блоков catch (Exception) { }
, поэтому я не уверен, буду ли я использовать его в критическом для жизни приложении, но это определенно хорошей отправной точкой, чтобы увидеть, как это можно сделать.
Ответ 6
Выделение синтаксиса - непростая задача для эффективного выполнения. Многие решения, которые вы можете найти (например, те, которые связаны с модификацией RTF), являются одноразовым решением. Если вы хотите выделить и не выделять слова "на лету" во время издания, ваш код должен быть готов к этому. Я бы не стал изобретать велосипед и использовать ICSharp.TextEditor или так, чтобы решить вашу проблему.