Vb.net 如何在richtextbox中检查新行是否为空

Vb.net 如何在richtextbox中检查新行是否为空,vb.net,richtextbox,Vb.net,Richtextbox,我正在检查richtextbox中的一行是否为空。如果没有,它将在下一行。 我使用的代码是: Dim text as string="hello" Dim lines = RichTextBox1.Lines Dim upperBound = lines.GetUpperBound(0) If lines(upperBound).Trim() = String.Empty Then lines(upperBound) = text RichTextBox1.Li

我正在检查richtextbox中的一行是否为空。如果没有,它将在下一行。 我使用的代码是:

Dim text as string="hello"
Dim lines = RichTextBox1.Lines
Dim upperBound = lines.GetUpperBound(0)

If lines(upperBound).Trim() = String.Empty Then
   lines(upperBound) = text
   RichTextBox1.Lines = lines
Else
    RichTextBox1.AppendText(Environment.NewLine & text)
End If
这是完美的工作。但刚才我发现,如果Richtextbox1完全为空,则此代码不会向其中添加文本。有没有办法修复这个小错误?谢谢

试试:

Dim text as string="hello"
Dim lines = RichTextBox1.Lines
Dim empty = {""}

If lines.Length = 0 Then lines = empty
    
Dim upperBound = lines.GetUpperBound(0)

If lines(upperBound).Trim() = String.Empty Then
    lines(upperBound) = titolo
    RichTextBox1.Lines = lines
Else
    RichTextBox1.AppendText(Environment.NewLine & text)
End If

你可以试试这个非常有效的系统

这称为LinQ for array,您可以查询数组中的空行, 如果计数大于0,则退出(或给出错误)


看看这是否符合您的要求:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim text As String = "hello"

    If RichTextBox1.Text.Trim = "" Then
        RichTextBox1.AppendText(titolo)
    ElseIf RichTextBox1.Lines(RichTextBox1.Lines.GetUpperBound(0)).Length = 0 Then
        RichTextBox1.AppendText(titolo)
    ElseIf RichTextBox1.Lines(RichTextBox1.Lines.GetUpperBound(0)).Trim = "" Then
        Dim lines = RichTextBox1.Lines
        lines(lines.GetUpperBound(0)) = titolo
        RichTextBox1.Lines = lines
    Else
        RichTextBox1.AppendText(Environment.NewLine & text)
    End If
End Sub

您好,在上使用Strict选项时,它会在ReDim(第1行)上返回一个错误:表达式是一个值,因此不能作为赋值的目标。这是我从@jmcilhinney获得的一段很棒的代码,如果您看到这段代码,我们将非常感谢您的帮助:)这不是我要求的。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim text As String = "hello"

    If RichTextBox1.Text.Trim = "" Then
        RichTextBox1.AppendText(titolo)
    ElseIf RichTextBox1.Lines(RichTextBox1.Lines.GetUpperBound(0)).Length = 0 Then
        RichTextBox1.AppendText(titolo)
    ElseIf RichTextBox1.Lines(RichTextBox1.Lines.GetUpperBound(0)).Trim = "" Then
        Dim lines = RichTextBox1.Lines
        lines(lines.GetUpperBound(0)) = titolo
        RichTextBox1.Lines = lines
    Else
        RichTextBox1.AppendText(Environment.NewLine & text)
    End If
End Sub