突出显示RichTextBox中的一些单词

编程入门 行业动态 更新时间:2024-10-28 01:18:48
本文介绍了突出显示RichTextBox中的一些单词的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

在RichTextBox1中,我想用不同的内容突出显示一些单词 颜色.不幸的是,这种情况只在第一个单词出现时出现, 尽管相同的词在文本的其他部分中也是如此.有人可以 请检查此代码,并告诉我哪里出了问题? 这是代码(您需要一个带有按钮和RichTextBox的窗体): 谢谢您的回答. 塞尔吉奥

In the RichTextBox1 I would like to highlight some words in different colors. Unfortunately this happens only for the first word of a kind, although the same words are in other parts of the text. Could somebody kindly check this code and tell me where it is wrong? Here is the code (you need a Form with a Button and a RichTextBox): Thank you for answer. Sergio

Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load RichTextBox1.Font = New Font("verdana", 10, FontStyle.Regular) RichTextBox1.Text = "Quel ramo del lago di Como, che volge a mezzogiorno, tra due catene non interrotte di monti, tutto a seni e a golfi, a seconda dello sporgere e del rientrare di quelli, vien, quasi a un tratto, a ristringersi, e a prender corso e figura di fiume, tra un promontorio a destra, e un'ampia costiera dall'altra parte; e il ponte, che ivi congiunge le due rive, par che renda ancor più sensibile all'occhio questa trasformazione, e segni il punto in cui il lago cessa, e l'Adda rincomincia, per ripigliar poi nome di lago dove le rive, allontanandosi di nuovo, lascian l'acqua distendersi e rallentarsi in nuovi golfi e in nuovi seni. La costiera, formata dal deposito di tre grossi torrenti, scende appoggiata a due monti contigui, l'uno detto di san Martino, l'altro, con voce lombarda, il Resegone, dai molti suoi cocuzzoli in fila, che in vero lo fanno somigliare a una sega: talché non è chi, al primo vederlo, purché sia di fronte, come per esempio di su le mura di Milano che guardano a settentrione, non lo discerna tosto, a un tal contrassegno, in quella lunga e vasta giogaia, dagli altri monti di nome più oscuro e di forma più comune." End Sub Public Function colora_parole(ByVal colori_vari As String, ByVal ParamArray paroladatrovare() As Object) For jk As Integer = 0 To UBound(paroladatrovare) RichTextBox1.Find(paroladatrovare(jk), RichTextBoxFinds.WholeWord) Select Case colori_vari Case "colora_rosso" RichTextBox1.SelectionColor = Color.Red Case "colora_blu" RichTextBox1.SelectionColor = Color.Blue Case "colora_verde" RichTextBox1.SelectionColor = Color.Green End Select RichTextBox1.SelectionLength = 0 Next jk Return 1 End Function Sub colora() colora_parole("colora_rosso", "due") colora_parole("colora_blu", "lago") colora_parole("colora_verde", "monti") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click colora() End Sub End Class

推荐答案

糟糕的代码,尤其是按字符串的情况,而不是由编译器枚举维护的代码.通常是硬编码的字符串…重复立即常量…(叹气)…绝对不可接受. 解决问题的方法之一是:使用属性SelectionStart, SelectionLength依次选择文本的某些部分,并设置SelectionColor和/或其他Selection…属性. 请参阅 msdn.microsoft/en-us/library/system.windows.forms.richtextbox.aspx [ ^ ].
—SA
Horrific code, especially case by string, instead of something maintained by a compiler enumeration. Hard-coded strings in general… repeated immediate constants… (sigh)… Absolutely unacceptable. One of the ways to solve the problem is: sequentially select some part of text using the properties SelectionStart, SelectionLength and setting SelectionColor and/or other Selection… properties. Please see msdn.microsoft/en-us/library/system.windows.forms.richtextbox.aspx[^].
—SA

更多推荐

突出显示RichTextBox中的一些单词

本文发布于:2023-11-04 21:47:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1559098.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:单词   RichTextBox

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!