Как проверить, пуста ли новая строка в 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.Lines = lines
Else
    RichTextBox1.AppendText(Environment.NewLine amp; text)
End If
  

Который работает отлично. Но только сейчас я обнаружил, что если Richtextbox1 полностью пуст, этот код не добавит к нему текст. Есть ли какой-нибудь способ исправить эту маленькую ошибку? Спасибо

Комментарии:

1. Это отличный код, который я взял у @jmcilhinney, поэтому, если вы это увидите, ваша помощь будет оценена по достоинству 🙂

Ответ №1:

Посмотрите, делает ли это то, что вы хотите:

 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 amp; text)
    End If
End Sub
  

Ответ №2:

Вы можете попробовать эту очень эффективную систему.

Это называется LinQ для массива, вы можете запросить массив для пустой строки, если количество больше 0, затем выйти (или выдать ошибку)

 Dim text As String = "hello"
Dim lines = RichTextBox1.Lines
        Dim qry = From n In lines
                  Where n = ""
                  Select n
        If qry.Count > 0 Then
        'you can give some error here
        End If
  

Комментарии:

1. Это не то, о чем я просил.

Ответ №3:

Попробуйте:

 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 amp; text)
End If
  

Комментарии:

1. Привет, используя параметр Strict on, он возвращает ошибку в ReDim(строки, 1): выражение является значением и, следовательно, не может быть целью присваивания.