winforms 如何在VB.NET中只搜索多行文本框的第一行

u2nhd7ah  于 2022-11-25  发布在  .NET
关注(0)|答案(2)|浏览(185)

有没有办法只搜索多行文本框的第一行,而不知道要查找的文本的确切位置?
如果我知道我正在寻找的文本的位置,我可以这样做:

Dim myNotes As String = "The book has a lot of text"
Dim myText As String = "text"
If Not myNotes.Substring(0,4) = myText Then 
    ' Do Something
End If

或者,如果我想搜索整个文本框,我可以这样做:

Dim myNotes As String = "The book has a lot of text"
Dim myText As String = "text"
If Not myNotes.Contains(myText) Then 
    ' Do Something
End If

但是我只想搜索文本框的第一行,而且我不确定文本可能在什么位置。有什么办法可以这样搜索吗?

piok6c0g

piok6c0g1#

这是另一个例子,说明为什么你应该总是阅读相关文档。如果你已经阅读了TextBox类的文档,那么你就会知道它有一个Lines属性。要获得第一行文本,你只需获得数组的第一个元素:

Dim firstLine = myTextBox.Lines(0)

If Not filrstLine.Contains(myText) Then
    'Do something
End If

请注意,这只适用于用户在文本中显式添加了换行符的情况。我假设这是您想要的,因为您已经接受了另一个做同样事情的答案。如果您指的是基于自动换行的第一行,那么这需要多花点功夫。

ulydmbyx

ulydmbyx2#

您可以提取文本并提取第一行。

int pos = text.IndexOfAny('\r', '\n');
if (pos >= 0)
    text = text.SubString(0, pos);

// text now contains only the first line

然后,您可以搜索结果字符串。

相关问题