2011-10-27 4 views
0

Je dois afficher du texte dans un RichtTextBox avec un fond rayé vert. Cela signifie que la première ligne a une couleur de fond blanche, la seconde une couleur de fond verte, la troisième a du blanc, la suivante du vert, etc.Comment créer une zone de texte enrichie par bandes?

Comment puis-je implémenter ceci?

La seule façon que j'imagine pour l'instant est de définir la couleur de chaque ligne de texte. Mais je devrais remplir chaque ligne avec des espaces pour obtenir des lignes entières. Cette façon semble être une mauvaise pratique pour moi.

Je pense à quelque chose comme l'événement OnPaint, etc. où je peux définir la couleur de fond pour chaque ligne avant que le texte soit affiché.

S'il y a un autre TextControl qui peut gérer mon problème ou que je dois implémenter un contrôle, c'est également une solution acceptable. Donne-moi juste un indice.

P.S .: J'utilise .Net2.0.

+0

Une idée est d'avoir la RTB transparente, et faites votre modèle derrière, en utilisant peut-être un panneau personnalisé sur lequel le RTB est arrimé. – jv42

+0

Ce n'est peut-être pas le plus pratique en fonction de vos besoins en lignes (c'est pourquoi je n'ai pas posté de réponse). – jv42

Répondre

1

Une option pour y parvenir serait d'utiliser le projet open source http://scintillanet.codeplex.com/. Un autre utilisateur SO a demandé comment alterner les couleurs de ligne avec cet outil particulier: Alternate row coloring in Scintilla

Si vous n'êtes pas opposé à payer pour cela, le WPF Actipro Syntax Editor prend en charge cette fonctionnalité bien que je ne sois pas certain de la version de WinForm.

Une dernière option serait d'utiliser un code de #Develop ou WPF AvalonEdit

Questions connexes