Текстовое/богатое текстовое поле с подсветкой синтаксиса? [С#]

Где я могу найти элемент управления для WinForms, который будет выделять вставленный в него исходный код? Я бы хотел тот, который поддерживает подсветку синтаксиса для многих разных языков, но если он работает только с C #, меня это тоже устроит.


person Kredns    schedule 06.07.2009    source источник


Ответы (8)


Scintilla.NET, вероятно, то, что вы ищете

person Fernando    schedule 06.07.2009
comment
Это хорошо, и спасибо за ссылку, приятно знать, что есть по крайней мере одна альтернатива с открытым исходным кодом, но это оставляет большое желание получить внешний вид VS. - person Vin; 06.07.2009
comment
Спасибо, кажется, это именно то, что я ищу. - person neo2862; 14.10.2009
comment
Обратите внимание, что приведенный выше ответ почти на два года старше, чем некоторые из представленных ниже материалов. Например, ответ Дэвида Марона превосходен и включает в себя ссылка на блог с хорошо сделанным объяснением того, как использовать его библиотеку, аргумент против Scintilla. NET и пример кода. - person ruffin; 27.04.2012
comment
Вы знаете, что именно означает встроенные языки, поддерживаемые в ScintillaNet? Я не нахожу никакого способа понять его built-in функции, мы всегда должны сами устанавливать KeyWords и настраивать стили, все делает его похожим на настраиваемый, не встроенный и готовый к использованию на все. Я знаю, что ключевые слова могут быть добавлены позже, когда язык будет развиваться, но базовый набор должен быть добавлен (что означает built-in), а дополнительный набор может быть добавлен/удален с помощью пользовательского кода. Слишком много кода для настройки элемента управления для выделения очень знакомого языка, такого как SQL. - person Hopeless; 09.08.2018
comment
Scintilla.NET в основном является оболочкой для элемента управления ActiveX: любой вызов метода запускается отложенным, и у меня было так много проблем с запуском сложных сценариев, как, например, синхронизация нескольких экземпляров, включая развертывание/свертывание областей. Я предпочитаю использовать FCTB (nuget), он использует vanilla .NET и отлично работает. Это немного грустно, потому что Scintilla хорошо известна и великолепна, но Scintilla.NET кажется подходящей только для простого сценария. - person Larry; 16.01.2019

Совсем недавно нашел хороший элемент управления от codeproject Fast ColoredTextBox для подсветки синтаксиса.

Единственная проблема с использованием Rich Text Box в качестве маркера — медленная работа при раскрашивании в случаях, когда размер документа большой. Для документов среднего размера эту проблему можно решить с помощью отложенного выделения.

person volody    schedule 23.05.2011
comment
С тех пор FCTB сильно развился, и, ИМХО, это правильный путь. - person Larry; 16.01.2019

В качестве альтернатив с открытым исходным кодом обратите внимание на:

person Christian C. Salvadó    schedule 06.07.2009

Добавьте в проект ссылку на сборку ICSharpCode.TextEditor, выберите сборку и элементы управления для Visual Studio Toolbox. После этого вы можете передать управление форме. Удивительно, но вы не увидите Свойство для выбора схемы подсветки синтаксиса. Вместо этого вы должны использовать метод SetHighlighting. Строковый параметр задает выделение схемы из списка доступных схем. Эти схемы встроены в элемент управления.

Как использовать, изменять схемы и скачать образец, смотрите следующую статью

person David Maron    schedule 26.05.2011

Если вы готовы платить за контроль, я настоятельно рекомендую этот: QWhale Syntax Edit. Он имеет массу функций, поставляется с исходным кодом и поддерживает множество языков. Я сам использую его для C#, VB.NET, SQL (MS и Oracle), и в нем есть все, что предоставляет VS.

person Mike Hofer    schedule 06.07.2009
comment
Проголосовали против? Для? Ему нужен инструмент, обеспечивающий внешний вид Visual Studio. Я рекомендовал тот, который поддерживает широкий спектр языков, внешний вид VS и не является ужасным бременем для кошелька. Как этот ответ не смог удовлетворить вопрос? - person Mike Hofer; 04.05.2012

Проверьте элемент управления AvalonEdit. На CodeProject есть хорошая статья, в которой объясняется, как его использовать.

person Dmitri Nesteruk    schedule 27.12.2009

Не уверен, что есть какое-то нестандартное решение для этого.

Но смотрели ли вы Actipro SyntaxEditor< /a> компонент. LinqPad, инструмент ubercool linq использует его для подсветки синтаксиса и intellisense.

person Vin    schedule 06.07.2009

вы можете попробовать это http://www.codeproject.com/KB/edit/SyntaxHighlighting.aspx

person imaximchuk    schedule 19.07.2010