Jak wyróżnić składnię w formancie richtextbox JAK TYPY UŻYTKOWNIKÓW i KORZYSTANIE Z ciągu znaków [] słowa kluczowe. Niedługo opublikuję niedużą notatkę w Internecie i chcę, aby miała ona podświetlanie składni. Używam formularzy systemu Windows. Czy ktoś może opublikować przykład kodu?Jak wyróżnić składnię w RichTextBox [C#]?
Odpowiedz
- RichTextBox syntax highlighting (mówi o sobie RichTextBox - minimalne funkcje, ale dokładnie to, czego poprosił o tutaj)
- A textbox/richtextbox that has syntax highlighting? [C#] (rozmowy głównie o innych sposobach robi)
używasz WinForms lub WPF?
Jeśli WPF, możesz rzucić okiem na AvalonEdit. Jest bezpłatny i open source i jest używany w SharpDevelop (open source IDE).
Możesz zmienić czcionkę wybranych słów w richtextbox. Spójrz na właściwości Wybierz i WybraneFont kontroli.
Ale zasadniczo musisz powtórzyć słowa, sprawdzić, czy słowo jest obecne w słowach kluczowych, a następnie zmienić czcionkę, korzystając z wyżej wymienionych właściwości.
Niezupełnie odpowiedź na Twoje pytanie, ale czy spojrzałeś na komponent edytora tekstu z SharpDevelop? Jest dość lekki (< 200kB IIRC), może być łatwo osadzony w aplikacjach WinForms i ma wbudowane podświetlanie składni dla wielu języków.
W przeciwnym razie możesz spojrzeć na this CodeProject page. Ponownie formatuje RTF podczas pisania, co nie jest zbyt wydajne w przypadku dużych plików i zawiera kilka przerażających bloków catch (Exception) { }
, więc nie jestem pewien, czy użyłbym go w aplikacji o krytycznym znaczeniu dla życia, ale na pewno jest to dobry początek wskaż, jak to zrobić.
Podświetlanie składni nie jest zadaniem łatwym do wykonania wydajnie. Wiele rozwiązań, które można znaleźć (takich jak modyfikacja RTF) jest rozwiązaniem jednorazowym. Jeśli chcesz podświetlić i odznaczyć wyrazy w locie podczas edycji, twój kod musi być na to przygotowany. Nie wymyśliłbym ponownie koła i nie użyłem ICSharp.TextEditor lub podobnego do rozwiązania twojego problemu.
Sterowanie Scintilla jest znakomitym edytorem kodu źródłowego, który zawiera podświetlanie składni wśród całej gamy innych funkcji. Możesz go osadzić w swojej własnej aplikacji i jest dostępny .NET wrapper.
Za pomocą Scintilla można określić słowa kluczowe, a następnie będzie stosować podświetlanie składni podczas pisania.
Jak zainstalować .dll? –
Jeśli pobierzesz .NET Wrapper z http://scintillanet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34393, możesz po prostu dodać plik ScintillaNet.dll do "Referencji" swojego projektu (jeśli jesteś przy użyciu Visual Studio). –
wymaga wdrożenia jednej z bibliotek dll do systemu windows \ system32, co jest dużym minusem. –
- 1. Kolorowanie tekstu w RichtextBox, C#
- 2. C# Jak ustawić kolor tekstu w richtextbox?
- 3. C# Problem wyboru RichTextBox
- 4. C++ Usuń składnię
- 5. Tryb Emacs C - jak podświetlasz składnię podając liczby szesnastkowe?
- 6. C# RichTextBox Wybierz określony tekst
- 7. Jak przekonwertować składnię zapytania na składnię metody?
- 8. C#/WPF: Wyłącz zawijanie tekstu w RichTextBox
- 9. Jak ukryć karetkę w RichTextBox?
- 10. Jak przesłonić kopiowanie i wklejać w richtextbox
- 11. Jak wyczyścić RichTextBox WPF?
- 12. Jak utworzyć niestandardową składnię do opisu obiektu w języku C#?
- 13. Jak wyróżnić tekst w tekście w Swift?
- 14. Jak korzystać z wielu kolorów w richtextbox
- 15. C# - zmiana koloru RichTextBox pewnych słów
- 16. C# Wiersz WPF i kolumna z RichTextBox
- 17. Jak wyróżnić przycisk po naciśnięciu?
- 18. Jak wyróżnić słowa rozpoczynające się od @ w składni Vima?
- 19. Resetuj RTF w RichTextBox?
- 20. Jak wyróżnić części listy odtwarzania?
- 21. W vim, jak wyróżnić TODO: i FIXME :?
- 22. Jak wyróżnić wybrany element w ListView?
- 23. Jak wyróżnić wybraną pozycję w ItemsControl?
- 24. Jak wyróżnić tylko tekst w UILabel - IOS
- 25. Zmiana czcionki tekstu w RichTextBox
- 26. Wymaganie składnię w węźle
- 27. Jak uzyskać RTF z RichTextBox
- 28. Jak mogę wpisać półprzestrzeń w RichTextBox?
- 29. Jak zmienić format określonych linii w RichTextBox
- 30. Jak mogę utworzyć hiperłącze w RichTextBox?
Podświetlanie składni, w przypadku renderera tekstowego przeznaczonego do oddzwaniania lub iteracyjnego odbierania tekstu przed renderowaniem, jest w rzeczywistości dość banalne: jest to tylko analiza leksykalna, która klasyfikuje tekst zgodnie z jego typem tokena. Ale RTF i inne edytory bogate nie są zaprojektowane w ten sposób, z oddzieleniem danych modelu od jego prezentacji. –
Tak, wygląda na to, że RTF wygląda całkiem dzisiaj ... :-) – jdehaan