Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 文本搜索和替换_Vb.net_Visual Studio_Text_Replace - Fatal编程技术网

Vb.net 文本搜索和替换

Vb.net 文本搜索和替换,vb.net,visual-studio,text,replace,Vb.net,Visual Studio,Text,Replace,我正在使用VisualBasic创建一个函数,该函数对输入richtextbox的每个单词执行搜索。当一个单词输入到RichTextBox2中时,将在RichTextBox1中执行搜索,并突出显示文本 RichTextBox1和RiochTextBox2是只读的,RichTextBox2可以通过代码写入,而RichTextBox1只有默认文本(单词目录)。还有RichTextBox3,它保存了RichTextBox2的text的副本 RichTextBox3.Text = RichTextBox

我正在使用VisualBasic创建一个函数,该函数对输入richtextbox的每个单词执行搜索。当一个单词输入到
RichTextBox2
中时,将在
RichTextBox1
中执行搜索,并突出显示文本

RichTextBox1
RiochTextBox2
是只读的,
RichTextBox2
可以通过代码写入,而
RichTextBox1
只有默认文本(单词目录)。还有
RichTextBox3
,它保存了
RichTextBox2的
text的副本

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
中的单词替换为搜索单词旁边的字符


有人能帮我解决这个问题吗。

当我使用此代码时,搜索词会在一个只读的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

我想知道丁格是不是来自generatekanji()例程。

不,generatekanji()其实什么都不是。这个代码仍然会发出叮当声,它将使用我使用的搜索方法搜索一次,这是一个实时搜索,搜索richtextbox2中输入的每个单词。因此,当richtextbox2文本被更改时,它将进行搜索。我得到了一个问题修复,谢谢。关于如何将richtextbox3中的搜索词替换为richtextbox1中搜索词旁边的字符的任何想法<代码>写真 沙欣照片
雲 库莫云
赤 又名红色
赤 赤井红
@RDixon我编辑了我的答案,将汉字添加到rtb3中。我不确定你是否会有搜索词,这些词可能包含在其他词中,因此我没有添加验证以查看它是否找到一个完整的词或一个词的一部分,但这应该可以帮助你找到正确的方向。你在rtb3中放了什么样的字符串?对我的代码的编辑向您展示了如何从字符串中复制汉字。语句RichTextBox3.Text=line.Split()。我怎么给你看这张照片?当我键入一个单词时,RTB1显示该单词,RTB2搜索该单词,RTB3搜索与RTB1中文本等效的字符。在RTB2中,有一个可以搜索的字符和单词列表及其含义。示例<代码>雲 Kumo cloud可能有许多名为“Kumo”的单词具有不同的字符如何用字符替换BTB3中的文本雲 当我使用的替换函数是
RichTextBox3.Text=String.Concat(RichTextBox3.Text.Remove(RichTextBox3.Text.Length-lastWord.Length)时雲")