【问题标题】:RichTextBox removes linebreaks from Email HeadersRichTextBox 从电子邮件标题中删除换行符
【发布时间】:2017-07-20 07:36:56
【问题描述】:

所以我正在尝试为 Outlook 编写一个简单的插件,它将读取电子邮件标题。获取电子邮件的标题很简单,我用 RichTextBox 制作了一个 Windows 窗体以显示标题(目前我只是将完整的原始标题推入,将来我想格式化它们并制作它们更容易阅读,突出显示更重要的部分等,因此是 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 会这样。

【问题讨论】:

  • 你能分享一下它如何显示文本的例子吗?

标签: vb.net visual-studio richtextbox email-headers


【解决方案1】:

Vb.net 不允许您使用 \ 转义 \r\n\n 字符来表示各自的 Chr(13) 和 Char(10) 字符

相反,您需要这样做。

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

您也可以使用Control.Chars.CrLfControl.Chars.Lf

【讨论】:

    猜你喜欢
    • 2014-05-21
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 2016-10-18
    相关资源
    最近更新 更多