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

时间:2015-07-21 20:01:54

标签: vb.net richtextbox

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

我试过了

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

2 个答案:

答案 0 :(得分:2)

不是迭代Lines属性并尝试单独更改每一行,而是尝试为Lines属性分配一个新数组:

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

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

您可以使用String.Remove()

代替String.Substring()
RichTextBox1.Lines = RichTextBox1.Lines.Select(Function(line) If(line.Length >= 27, line.Substring(27), line)).ToArray()

答案 1 :(得分:1)

如果您想在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