文本搜索和替换

时间:2013-06-01 23:06:02

标签: vb.net visual-studio text replace

我正在使用visual basic,我正在创建一个函数,用于搜索输入到richtextbox中的每个单词。正在输入一个单词RichTextBox2,我会在RichTextBox1中执行搜索,并突出显示文字。

RichTextBox1RiochTextBox2是只读的,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中的单词替换为搜索单词旁边的字符。

有人可以帮助解决这个问题。

1 个答案:

答案 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()例程。