Текстовое поле / richtextbox с подсветкой синтаксиса?

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

Возможно, Scintilla.NET – это то, что вы ищете

Как альтернативы Open Source, посмотрите:

  • dotNetFireball
  • ICSharpCode.TextEditor от SharpDevelop

Совсем недавно нашла хороший контроль над codeproject Fast Colored TextBox для подсветки синтаксиса .

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

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

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

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

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

Не уверен, есть ли какое-либо из решений без третьей стороны.

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

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

  • Const до или const после?
  • Назначение массива c ++ для нескольких значений
  • Почему переменные конструктора конструктора объекта C # 3.0 необязательны?
  • Knockout.js без контейнера «foreach» не работает с
  • У моего java-кода есть очевидная ошибка. Почему он компилируется и запускается?
  • Как я могу разделить команду оболочки на несколько строк при использовании оператора IF?
  • Бинарные литералы C #
  • Что означает синтаксис структуры C ++ "a: b"
  • Что легче читать в подзапросах EXISTS?
  • Как использовать двойные или одиночные скобки, круглые скобки, фигурные скобки
  • Есть ли разница между одиночными и двойными кавычками в Java?
  • Давайте будем гением компьютера.