因此,我正在尝试将一个简单的添加内容放在一起,用于阅读电子邮件标题。获取电子邮件的标题非常简单,我已经创建了一个带有RichTextBox的窗体,以显示标题(目前我只是推送完整的原始标题,将来我想要格式化它们和使它们更容易阅读,突出显示更重要的部分等,因此RichTextBox)。
我遇到的问题是,一旦我设置了textbox.Rtf,它就会丢失标题中的自然新行,这会使它们变得混乱。如果我使用textbox.Text,它们会有换行符,因此它们可以更好地阅读。
我尝试了一些不同的东西,试图强制显示新的行(例如使用\ line和\ par),但是一旦我使用.Rtf,它似乎永远不会出现。
Public Class showHeaders
Public Shared Sub MyMsg(msg As String)
Dim MsgUserForm1 As New MsgUserForm
With MsgUserForm1
MsgUserForm1.Text = "Email headers:"
.RichTextBox1.Text = msg
.RichTextBox1.Rtf = .RichTextBox1.Text
.Show()
Dim sSaveFolder As String = "C:\headers\"
.RichTextBox1.SaveFile(sSaveFolder & "Headers.txt")
End With
End Sub
Private Shared Function parseHeaders(inputHeader As String) As String
inputHeader = inputHeader.Replace("\r\n", "\line")
inputHeader = inputHeader.Replace("\n", "\line")
inputHeader = inputHeader.Replace("Received:", "\b Received:\b0")
inputHeader = "{\rtf1\ansi " + inputHeader + "}"
Return inputHeader
End Function
End Class
任何帮助都会受到欢迎,因为我不明白为什么RichTextBox的行为方式如此。
答案 0 :(得分:0)
Vb.net不允许您使用\
转义\r\n
或\n
个字符来表示相应的Chr(13)和Char(10)字符
相反,你需要这样做。
inputHeader = inputHeader.Replace(VbNewLine, "\line")
inputHeader = inputHeader.Replace(VbLF, "\line")
或者,您可以使用Control.Chars.CrLf
和Control.Chars.Lf