在 RichTextBox returns -1 中搜索第一次出现的特定字符
Search first ocurrence of specific character in RichTextBox returns -1
我只是想找到当前行第一个空格的位置索引。
我编写的代码仅适用于整个 richtextbox 中的第一个空格,但如果我尝试获取以下空格位置的索引(同一行或后续行),我总是得到-1,我不知道为什么。
我一直在阅读以下文档:
MSDN documentation link
并且我使用了 Find(Char[], Int32) 选项,如下所示:
RTB1.Find(CChar(" "), RTB1.GetFirstCharIndexOfCurrentLine)
问题是,当我尝试检测第一个空格后的后续空格时,我得到 -1。如果我使用该代码来检测第一行的第一个空格,结果是 6(这是正确的)。但是对于以下空格,我总是得到 -1,即使它是第一行或后续行。
试试这个。
Dim last = Me.rtb.Find(New Char() {" "}, Me.rtb.GetFirstCharIndexOfCurrentLine)
此代码将一次性为您提供所有 space 个字符的索引:
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
我只是想找到当前行第一个空格的位置索引。
我编写的代码仅适用于整个 richtextbox 中的第一个空格,但如果我尝试获取以下空格位置的索引(同一行或后续行),我总是得到-1,我不知道为什么。
我一直在阅读以下文档: MSDN documentation link
并且我使用了 Find(Char[], Int32) 选项,如下所示:
RTB1.Find(CChar(" "), RTB1.GetFirstCharIndexOfCurrentLine)
问题是,当我尝试检测第一个空格后的后续空格时,我得到 -1。如果我使用该代码来检测第一行的第一个空格,结果是 6(这是正确的)。但是对于以下空格,我总是得到 -1,即使它是第一行或后续行。
试试这个。
Dim last = Me.rtb.Find(New Char() {" "}, Me.rtb.GetFirstCharIndexOfCurrentLine)
此代码将一次性为您提供所有 space 个字符的索引:
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