2017-07-19 72 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