Home > Enterprise >  How to search only the first line of a multiline textbox in VB.NET
How to search only the first line of a multiline textbox in VB.NET

Time:11-09

Is there any way to search only the first line of a Multiline Textbox without knowing exactly at what position the text is you're looking for?

If I knew the position of the text I was looking for I could do something like:

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

Or if I wanted to search the entire textbox I could do something like:

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

But I want to search only the first line of the textbox and I'm not sure at what position the text may be. Is there anyway to do a search like that?

CodePudding user response:

You could take the text and extract the first line.

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

// text now contains only the first line

Then you can search the resulting string.

CodePudding user response:

This is another example of why you should ALWAYS read the relevant documentation. If you had read the documentation for the TextBox class then you'd know that it has a Lines property. To get the first line of text, you simply get the first element of that array:

Dim firstLine = myTextBox.Lines(0)

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

Note that this only applies where the user has explicitly added a line break to the text. I assume that that is what you want, given that you have accepted another answer that does the same thing. If you mean the first line based on automatic word-wrap then that requires a bit more effort.

  • Related