我想在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说“文件格式无效”。
答案 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"之后的任何空白字符上工作。 (我总是讨厌这句话。)