Где я могу найти элемент управления для WinForms, который будет выделять вставленный в него исходный код? Я бы хотел тот, который поддерживает подсветку синтаксиса для многих разных языков, но если он работает только с C #, меня это тоже устроит.
Текстовое/богатое текстовое поле с подсветкой синтаксиса? [С#]
Ответы (8)
Scintilla.NET, вероятно, то, что вы ищете
built-in функции, мы всегда должны сами устанавливать KeyWords и настраивать стили, все делает его похожим на настраиваемый, не встроенный и готовый к использованию на все. Я знаю, что ключевые слова могут быть добавлены позже, когда язык будет развиваться, но базовый набор должен быть добавлен (что означает built-in), а дополнительный набор может быть добавлен/удален с помощью пользовательского кода. Слишком много кода для настройки элемента управления для выделения очень знакомого языка, такого как SQL.
- person Hopeless; 09.08.2018
Совсем недавно нашел хороший элемент управления от codeproject Fast ColoredTextBox для подсветки синтаксиса.
Единственная проблема с использованием Rich Text Box в качестве маркера — медленная работа при раскрашивании в случаях, когда размер документа большой. Для документов среднего размера эту проблему можно решить с помощью отложенного выделения.
В качестве альтернатив с открытым исходным кодом обратите внимание на:
- dotNetFireball
- ICSharpCode.TextEditor из SharpDevelop
Добавьте в проект ссылку на сборку ICSharpCode.TextEditor, выберите сборку и элементы управления для Visual Studio Toolbox. После этого вы можете передать управление форме. Удивительно, но вы не увидите Свойство для выбора схемы подсветки синтаксиса. Вместо этого вы должны использовать метод SetHighlighting. Строковый параметр задает выделение схемы из списка доступных схем. Эти схемы встроены в элемент управления.
Как использовать, изменять схемы и скачать образец, смотрите следующую статью
Если вы готовы платить за контроль, я настоятельно рекомендую этот: QWhale Syntax Edit. Он имеет массу функций, поставляется с исходным кодом и поддерживает множество языков. Я сам использую его для C#, VB.NET, SQL (MS и Oracle), и в нем есть все, что предоставляет VS.
Проверьте элемент управления AvalonEdit. На CodeProject есть хорошая статья, в которой объясняется, как его использовать.
Не уверен, что есть какое-то нестандартное решение для этого.
Но смотрели ли вы Actipro SyntaxEditor< /a> компонент. LinqPad, инструмент ubercool linq использует его для подсветки синтаксиса и intellisense.
вы можете попробовать это http://www.codeproject.com/KB/edit/SyntaxHighlighting.aspx