2013-06-01 2 views
1

Я работаю с визуальным базовым, и я создаю функцию, которая выполняет поиск каждого слова, которое вводится в 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

Когда я использую этот код искомого слово подсвечивается, без расшитого, в 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 рутинного().

+0

nah generatekanji() ничего не значит. этот код по-прежнему вызывает звуковой сигнал, и он будет искать один раз с помощью метода поиска, который используется для поиска в реальном времени, который ищет врага для каждого слова, введенного в richtextbox2. поэтому при изменении текста richtextbox2 он выполнит поиск. –

+0

У меня проблема исправлена ​​ спасибо . любая идея о том, как я могу заменить искомое слово в richtextbox3 символом рядом с искомым словом в richtextbox1. '写真 Шашина photo' ' 雲 cloud' Кумо '赤 Ака Red' ' 赤 Akai Red' –

+0

@RDixon Я отредактировал мой ответ, чтобы добавить кандзи в rtb3. Я не был уверен, что у вас будут слова поиска, которые могут содержаться в других словах, поэтому я не добавил проверки, чтобы увидеть, найдет ли оно целое слово или часть слова, но это должно дать вам руку в правильное направление. – tinstaafl

Смежные вопросы