从 richtextbox 中的每一行中删除前 27 个字符

Remove first 27 characters from each line in richtextbox

我该如何删除 richtextbox 中每行的前 27 个字符?

我试过了

For Each i In RichTextBox1.Lines
        i = RichTextBox1.Text.Remove(0, 27)
    Next

与其遍历 Lines 属性 并尝试单独更改每一行,不如尝试为 Lines 属性 分配一个新数组,如下所示:

已更新以处理少于 27 个字符的行

RichTextBox1.Lines = RichTextBox1.Lines.Select(Function(line) If(line.Length >= 27, line.Remove(0, 27), line)).ToArray()

您也可以使用 String.Substring()

而不是 String.Remove()
RichTextBox1.Lines = RichTextBox1.Lines.Select(Function(line) If(line.Length >= 27, line.Substring(27), line)).ToArray()

如果您想保留 RichTextBox 中已有的格式,请按以下方式进行:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    For i As Integer = 0 To RichTextBox1.Lines.Length - 1
        Dim index As Integer = RichTextBox1.GetFirstCharIndexFromLine(i)
        RichTextBox1.Select(index, Math.Min(27, RichTextBox1.Lines(i).Length))
        RichTextBox1.SelectedText = ""
    Next i
End Sub