我正在使用visual basic,我正在创建一个函数,用于搜索输入到richtextbox中的每个单词。正在输入一个单词RichTextBox2
,我会在RichTextBox1
中执行搜索,并突出显示文字。
RichTextBox1
和RiochTextBox2
是只读的,RichTextBox2
可以通过代码写入,而RichTextBox1
只有默认文本(单词目录)。还有RichTextBox3
,其中包含RichTextBox2's
文本
RichTextBox3.Text = RichTextBox2.Text
这是该功能的代码。
public class textsearch
Private intPosition As Integer
Private Sub NextButton_Click(sender As Object, e As EventArgs) Handles NextButton.Click
generatekanji()
' Static intStart As Integer
'used to select compare method
Dim intStart As Integer
Dim objType As Object
Dim lastWord As String = RichTextBox2.Text.Split(" ").Last
objType = CompareMethod.Text
'set starting position to 1
intPosition = 1
'use the InStr function to look up a staring position of a search string in a given text box using objType (case-insensitive or case-sensitive)
intStart = InStr(intPosition, RichTextBox1.Text, lastWord, objType) ' what it searches
If intStart > 0 Then
'set starting select position on a textbox and select the search string
RichTextBox1.SelectionStart = intStart - 1
RichTextBox1.SelectionLength = lastWord.Length 'highlights the searched word
RichTextBox1.Select()
End If
End Sub
End Class
这是一个非常有用的功能,但主要问题是
(1)因为RichTextBox1
是只读的,所以每次执行搜索时都会发出“叮”声,并且非常烦人。
(2)我找不到在找到单词时选择字符的方法,或者如何将RichTextBox3
中的单词替换为搜索单词旁边的字符。
有人可以帮助解决这个问题。
答案 0 :(得分:0)
当我使用此代码时,在一个只读的richtextbox中突出显示搜索词而没有任何操作:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim SearchWord As String = RichTextBox2.text
Dim SelStart As Integer = InStr(RichTextBox1.Text, SearchWord, CompareMethod.Text)
If SelStart > 0 Then
RichTextBox1.Select(SelStart - 1, SearchWord.Length)
RichTextBox1.Focus()
For Each line In RichTextBox1.Lines
If line.Contains(SearchWord) Then
RichTextBox3.Text = line.Split()(0)
End If
Next
End If
End Sub
我想知道dinging是否来自generatekanji()例程。