1

TextBox のテキストを検索し、見つかった場合は検索語の最初のインスタンスを強調表示する基本的な検索フォームを作成しました。これまでのところ、このコードは少しありますが、何らかの方法でフォームに「次へ」ボタンを実装したいと考えています。クリックすると次のインスタンスに移動し、もう一度クリックすると次のインスタンスに移動します。誰か助けてもらえますか?

Dim Search As String
        Dim Find As String
        Search = TextBox1.Text
        Find = InStr(Form1.TextBox1.Text, Search)
        If Find Then
            Form1.TextBox1.Focus()
            Form1.TextBox1.SelectionStart = Find - 1
            Form1.TextBox1.SelectionLength = Len(Search)
        Else
            MsgBox("Can't find the text:" & Environment.NewLine & Search)
        End If
4

1 に答える 1

0

InStr関数には、特定のインデックスから検索を開始できるパラメーターがあります。この場合、見つかった単語のインデックスに単語自体の長さを加えたものになります。

Find = InStr(Find + Len(Search), Form1.TextBox1.Text, Search)

この場合、 position から開始しますFind + Len(Search)。テストされていませんが、それはあなたが望むことをするべきだと思います。

Nextおそらく時期尚早の最適化ですが、ボタンを押すたびに計算する必要がないように、検索語の長さを保存できます。

于 2013-03-18T01:04:13.737 に答える