Comment la Surbrillance de la Syntaxe dans un RichTextBox [C#]?
Comment puis-je la surbrillance de la syntaxe dans un contrôle richtextbox TYPES d'UTILISATEUR et à l'AIDE d'UN String[] mots-clés. Je vais publier un léger bloc-notes pour le web bientôt et je veux qu'il ait de la syntaxe. Je suis à l'aide de formulaires Windows. Quelqu'un peut-il poster un exemple de code?
OriginalL'auteur Mohit Deshpande | 2009-11-08
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Sam Harwell
La Scintilla de contrôle est un excellent éditeur de code source qui inclut la coloration syntaxique parmi toute une gamme d'autres fonctions. Vous pouvez l'intégrer dans votre propre application et il y a un .NET wrapper disponibles.
De Scintilla, vous pouvez spécifier les mots-clés et ensuite, il sera appliqué la coloration syntaxique que vous tapez.
Si vous téléchargez le .NET emballage de scintillanet.codeplex.com/Release/... ensuite, vous pouvez simplement ajouter le fichier ScintillaNet.dll pour les "Références" de votre projet (si vous utilisez Visual Studio).
nécessite le déploiement de l'un des dll windows\system32 c'est gros inconvénient
Pouvez-vous juste les mettre dans le même répertoire que votre .fichier exe?
J'ai essayé, mais il n'a pas aidé.
OriginalL'auteur Matt Warren
Êtes-vous à l'aide de WinForms ou WPF?
Si WPF, vous pourriez avoir un coup d'oeil à AvalonEdit. Il est gratuit et open source, et il est utilisé dans SharpDevelop (IDE open source).
OriginalL'auteur Winston Smith
Vous pouvez modifier la police de mots sélectionnés dans le richtextbox. Jetez un oeil à la sélection et SelectedFont propriétés du contrôle.
Mais essentiellement, vous avez besoin d'itérer à travers les mots, de vérifier si un mot est présent dans vos mots clés, et changer la police, à l'aide de l'mentionnés ci-dessus les propriétés.
OriginalL'auteur Jan
Pas exactement la réponse à votre question, mais avez-vous regardé l'éditeur de texte composant de SharpDevelop? Il est assez léger (<200ko IIRC), peut être facilement intégré dans des applications WinForms et a la coloration syntaxique pour plusieurs langues construit dans.
Sinon, vous pouvez consulter cette page CodeProject. Il reformate le RTF pendant que vous tapez, ce qui n'est pas très efficace pour les gros fichiers, et il contient un peu creepy
catch (Exception) { }
blocs, de sorte que je ne suis pas sûr si je voulais l'utiliser dans une application critique, mais il est certainement un bon point de départ pour voir comment il peut être fait.OriginalL'auteur Niki
La coloration syntaxique n'est pas une tâche facile à accomplir de manière efficace. De nombreuses solutions que vous pouvez trouver (comme celles impliquant un changement de format RTF) sont une solution. Si vous voulez mettre en valeur et de l'onu-mettre en surbrillance les mots à la volée lors de l'édition, votre code doit être prêt pour cela. Je ne voudrais pas réinventer la roue et utiliser ICSharp.TextEditor ou semblable à résoudre votre problème.
Oui, semble que RTF semble assez vieux aujourd'hui... 🙂
OriginalL'auteur jdehaan