【问题标题】:Gettint text from lastline in richtextbox从富文本框中的最后一行获取文本
【发布时间】:2020-09-29 09:11:20
【问题描述】:

我想复制富文本框的最后一行。 我避免Dim lastLine As String = RichTextBox1.Lines(RichTextBox1.Lines.Length - 1)as 它无法正常工作,因为它仅在其中至少有 2 行时才有效。 我正在尝试使用MsgBox(RichTextBox1.Lines(UBound(richtextbox1.Lines))),但问题是即使richtextbox 只有1行文本但光标在第二个空行,它也会返回“”,因为我认为软件正在读取空的第二行. 有解决办法吗? 谢谢

【问题讨论】:

    标签: vb.net richtextbox


    【解决方案1】:

    这将得到最后一个非空行:

    RichTextBox1.Lines.Where(Function(line) line <> String.Empty).Last()
    

    这有一些潜在的问题。如果根本没有文本,或者有多行但它们都是空的,则会引发异常。为此,您可以改为调用LastOrDefault,在这种情况下,它将返回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.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      相关资源
      最近更新 更多