Поиск первого вхождения определенного символа в RichTextBox возвращает -1 - PullRequest
0 голосов
/ 04 ноября 2018

Я просто пытаюсь найти индекс позиции первого пробела текущей строки.

Я написал код, который работает хорошо только для первого пробела во всем richtextbox, но если я пытаюсь получить индекс позиции следующих пробелов (той же строки или в следующих строках), я всегда получаю - 1 и я не знаю почему.

Я читал следующую документацию: Ссылка на документацию MSDN

И я использовал опцию Find (Char [], Int32) следующим образом:

RTB1.Find(CChar(" "), RTB1.GetFirstCharIndexOfCurrentLine)

Проблема в том, что я получаю -1, когда пытаюсь обнаружить следующие пробелы после первого. Если я использую этот код для обнаружения первого пробела в первой строке, в результате я получаю 6 (и это правильно). Но для следующих пробелов я всегда получаю -1, даже если это первая строка или следующие строки.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Этот код даст вам индексы всех пробелов за один раз:

Dim index = RichTextBox1.Find({" "c})

Do Until index = -1
    MessageBox.Show(index.ToString())

    index = RichTextBox1.Find({" "c}, index + 1)
Loop

Если вы хотите получить их по одному, то вот что вам нужно:

Private index As Integer = -1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    index = RichTextBox1.Find({" "c}, index + 1)

    If index = -1 Then
        MessageBox.Show("No more spaces")
    Else
        MessageBox.Show(index.ToString())
    End If
End Sub
0 голосов
/ 04 ноября 2018

Попробуйте это.

Dim last = Me.rtb.Find(New Char() {" "}, Me.rtb.GetFirstCharIndexOfCurrentLine)
...