以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]RichTextBox 控件查找及定位 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158095) |
||
-- 作者:天一生水 -- 发布时间:2020/11/7 16:02:00 -- [求助]RichTextBox 控件查找及定位 老师好! 在richtextbox中查找关键字,找到后高亮显示,且焦点转到被找到的内容。 在网上找到一段c#的代码,也转成.net的代码了,但是不能使用。麻烦老师看看代码。 谢谢!
c#代码: Font f=new Font("Verdana", 8F, FontStyle.Italic, GraphicsUnit.Point);
.net代码: Private Sub SurroundingSub() If richTextBox1.Find(str) > 0 Then
窗口创建RichTextBox控件: Dim ct As New System.Windows.Forms.RichTextBox
|
||
-- 作者:有点蓝 -- 发布时间:2020/11/7 16:22:00 -- Dim richTextBox1 As System.Windows.Forms.RichTextBox = e.Form.Controls("Panel1").BaseControl.Controls(0) Dim f As Font = New Font("Verdana", 8F, FontStyle.Italic, GraphicsUnit.Point) Dim str As String = "要查找的字符" Dim pos As Integer = richTextBox1.Find(str) If pos > 0 Then richTextBox1.SelectionStart = pos richTextBox1.SelectionLength = str.Length richTextBox1.SelectionFont = f richTextBox1.SelectionColor = Color.Red End If |
||
-- 作者:天一生水 -- 发布时间:2021/1/16 19:12:00 -- 蓝老师,利用Find只能显示找到文档中出现的第一处字符串,如果文档中前后有多处,就不再往下找了。 如果要标注出所有的字符串,要用什么方法? 谢谢!
https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.richtextbox.find?view=net-5.0 |
||
-- 作者:有点蓝 -- 发布时间:2021/1/17 19:58:00 --
循环或者递归处理,从之前查询结果的位置+字长度作为新的起始点开始查询 |
||
-- 作者:天一生水 -- 发布时间:2021/1/17 20:58:00 -- 循环和递归都不会弄,老师给写一段吧 |
||
-- 作者:有点蓝 -- 发布时间:2021/1/17 21:17:00 -- Dim richTextBox1 As System.Windows.Forms.RichTextBox = e.Form.Controls("Panel1").BaseControl.Controls(0) Dim f As Font = New Font("Verdana", 8F, FontStyle.Italic, GraphicsUnit.Point) Dim pos As Integer =0 Dim str As String = "要查找的字符" pos = richTextBox1.Find(str,pos,0) do while pos > 0 richTextBox1.SelectionStart = pos richTextBox1.SelectionLength = str.Length richTextBox1.SelectionFont = f richTextBox1.SelectionColor = Color.Red pos = pos + str.Length pos = richTextBox1.Find(str,pos,0) loop |
||
-- 作者:天一生水 -- 发布时间:2021/1/17 21:35:00 -- 谢谢蓝老师! |