如何获取多行文本框每行的长度并检查多于或少于VB.NET中的特定值

How to get Length of each line of multiline TextBox and check more or less than specific value in VB .NET

我想获取多行文本框中每一行的长度并显示在另一个文本框中,例如 3/12 并检查每行是否超过 36 个字符,然后指示行长度的文本框的前景色应为红色。 我为此写了一个鳕鱼,但效果不佳。 我怎样才能做到这一点?谢谢大家

我的鳕鱼是:

  Private Sub Texttb_TextChanged(sender As Object, e As EventArgs) Handles Texttb.TextChanged


  
        TextBox2.Clear()

        For Each lin As String In Texttb.Lines
            TextBox2.AppendText(lin.Length & "/")
            If lin.Length > 38 Then
                TextBox2.ForeColor = Color.Red
            ElseIf lin.Length < 38 Then
                TextBox2.ForeColor = Color.Black
            End If
        Next

       

如果您只关心任何行是否太长,那么只需使用 Any:

TextBox2.ForeColor = If(TextBox1.Lines.Any(Function(line) line.Length > MAX_LINE_LENGTH),
                        Color.Red,
                        Color.Black)

编辑:

根据我设法梳理出的完整问题描述,这可能是要走的路:

Const MAX_LINE_LENGTH = 38
Dim lineLengths = TextBox1.Lines.Select(Function(line) line.Length).ToArray()

With TextBox2
    .Text = String.Join("/", lineLengths)
    .ForeColor = If(lineLengths.Any(Function(n) n > MAX_LINE_LENGTH),
                    Color.Red,
                    SystemColors.ControlText)
End With