从richtextbox中的最后一行获取文本
Gettint text from lastline in richtextbox
我想复制富文本框的最后一行。
我正在避免 Dim lastLine As String = RichTextBox1.Lines(RichTextBox1.Lines.Length - 1)
as
它不能正常工作,因为只要其中至少有 2 行它就可以工作。
我正在尝试使用 MsgBox(RichTextBox1.Lines(UBound(richtextbox1.Lines)))
但问题是即使 richtextbox 只有 1 行文本但光标位于第二个空行中,它也会返回 "" 因为我认为软件正在读取空行第二行。
有解决办法吗?
谢谢
这将得到最后 non-empty 行:
RichTextBox1.Lines.Where(Function(line) line <> String.Empty).Last()
这有一些潜在的问题。如果根本没有文本或者有多行但它们都是空的,则会抛出异常。为此,您可以改为调用 LastOrDefault
,在这种情况下它将 return Nothing
.
如果您只想排除最后一个空行,例如如果你有一些文本后跟一个换行符然后另一个换行符然后你想得到这两个空行中的第一个,那么你真的不能在一行中完成它:
Dim lines = RichTextBox1.Lines
Dim upperBound = lines.GetUpperBound(0)
Dim lastLine = lines(upperBound)
If lastLine = String.Empty Then
If upperBound > 0 Then
lastLine = lines(upperBound - 1)
Else
lastLine = Nothing
End If
End If
'Use lastLine here.
我想复制富文本框的最后一行。
我正在避免 Dim lastLine As String = RichTextBox1.Lines(RichTextBox1.Lines.Length - 1)
as
它不能正常工作,因为只要其中至少有 2 行它就可以工作。
我正在尝试使用 MsgBox(RichTextBox1.Lines(UBound(richtextbox1.Lines)))
但问题是即使 richtextbox 只有 1 行文本但光标位于第二个空行中,它也会返回 "" 因为我认为软件正在读取空行第二行。
有解决办法吗?
谢谢
这将得到最后 non-empty 行:
RichTextBox1.Lines.Where(Function(line) line <> String.Empty).Last()
这有一些潜在的问题。如果根本没有文本或者有多行但它们都是空的,则会抛出异常。为此,您可以改为调用 LastOrDefault
,在这种情况下它将 return Nothing
.
如果您只想排除最后一个空行,例如如果你有一些文本后跟一个换行符然后另一个换行符然后你想得到这两个空行中的第一个,那么你真的不能在一行中完成它:
Dim lines = RichTextBox1.Lines
Dim upperBound = lines.GetUpperBound(0)
Dim lastLine = lines(upperBound)
If lastLine = String.Empty Then
If upperBound > 0 Then
lastLine = lines(upperBound - 1)
Else
lastLine = Nothing
End If
End If
'Use lastLine here.