2017-07-19 108 views
0

删除换行符所以我试图把一个简单的添加对Outlook将阅读电子邮件标头。获取邮件的标题就足够了微不足道的,我已经为了显示表头做了一个窗口形式一个RichTextBox(目前我只是推了充分的原始消息头中,在未来我想格式化他们,让他们更容易阅读,突出显示更重要的部分等,因此RichTextBox)。的RichTextBox从电子邮件标题

我遇到的问题是,一旦我设定的textbox.Rtf,它失去了自然的新线,是在头部,这使得它们一个烂摊子。如果我做textbox.Text,他们有换行符所以他们好得多阅读。

我已经尝试了一些不同的东西,以尝试并强制新生产线,以显示(例如通过使用\线\相提并论),但它似乎从来没有来过一次,我用的.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

你能分享它是如何显示文本的例子吗? – 3vts

回答

0

Vb.net不允许你使用\逃脱\r\n\n字符代表各自CHR(13)和CHAR(10)字符

相反,你需要做到这一点。

inputHeader = inputHeader.Replace(VbNewLine, "\line") 
inputHeader = inputHeader.Replace(VbLF, "\line") 

或者您可以使用Control.Chars.CrLfControl.Chars.Lf