在RichTextBox中缩进RTF文本而不会丢失RTF样式

时间:2015-08-06 22:38:42

标签: vb.net richtextbox rtf auto-indent

我想在RichTextBox中缩进RTF文本而不会丢失RTF样式。

Dim Alinea As String = "    "

Private Sub Indent_Click(sender As Object, e As EventArgs) Handles Indent.Click
    Try
        Dim Output As String = Nothing
        Dim Split() As String = RichTextBox1.Lines
        For i = 0 To Split.Length - 1
            Output = String.Concat(Output, Split(i).Insert(0, Alinea), If(Not i = Split.Length - 1, vbNewLine, Nothing))
        Next
        RichTextBox1.Text = Output
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub

以前的代码有效,但它返回没有任何样式的文本。

我只想在RichTextBox文本的所有行的开头添加Alinea。 我试图使用RichTextBox1.Rtf属性,但它显示一个MsgBox说“文件格式无效”。

1 个答案:

答案 0 :(得分:1)

使用RichTextBox1.Rtf而不是使用RichTextBox1.Lines。

RichTextBox1.Rtf = RichTextBox1.Rtf.Replace(vbCrLf, vbCrLf & vbTab)

这样做有效,但您可能希望键入\par\par & vbcrlf之类的内容,以更多地遵守rtf标准。

RichTextBox1.Rtf = RichTextBox1.Rtf.Replace("\par" & vbCrLf, "\par" & vbCrLf & vbTab)

"它留给读者一个练习"使它在第一行和#34; \ par"之后的任何空白字符上工作。 (我总是讨厌这句话。)