首页 文章

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

提问于
浏览
1

我想在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说"File format not valid" .

1 回答

  • 1

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

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

    这有效,但您可能想要键入 \par\par & vbcrlf 之类的内容以更多地遵守rtf标准 .

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

    “它留给读者练习”,使其在第一行和“\ par”之后的任何空格字符上工作 . (我总是讨厌这句话 . )

相关问题