2016-03-31 86 views
1

从一个多行文本区域复制文本到另一个文本区域,然后通过电子邮件发送所述文本时,我遇到了保留换行符的问题。没有粘贴到多行文本框中的换行符

换行符看起来很好,直到打开Outlook电子邮件。当在电子邮件上右击并查看源文件时,文本格式正确。

相关代码:

Dim sb As New StringBuilder 
Dim linebreak = vbCrLf 
sb.Append("some data"& linebreak & linebreak) 
sb.Append("more data" & linebreak & linebreak) 
txtData.Text = sb.ToString() 

'Textbox html 
<asp:TextBox ID="txtCustInfo" TextMode="MultiLine" runat="server" Height="300px" Width="265px"></asp:TextBox> 

这是我粘贴到上述文本框:

<asp:TextBox ID="txtDescription" runat="server" Rows="6" TextMode="MultiLine" Width="500px"></asp:TextBox> 

这则获取的Outlook电子邮件发送

Public Sub SendRequest(ByVal message As String, Optional ByVal SendToEmailAddress As String = "", Optional ByVal AddToSubjectLine As String = "", Optional ByVal attachment As String = "") 

    Dim msg As New EmailMessage 
    msg.Body = message 

    'Send message 

End Sub 

任何人遇到此之前?谢谢。

+1

如何尝试使用Environment.NewLine()来代替。不知道VB是否有。 –

+0

我已经试过这个,我也添加wrap =“false”到正在接收文本的文本框。感谢您的回复 –

+0

我可能是错的,但我认为你必须将linebreak定义为一个字符串.......“Dim linebreak = vbCrLf”应该是“Dim linebreak as string = vbCrLf” –

回答

1

这里是一个可能的解决方案:

Public Sub SendRequest(ByVal message As String, Optional ByVal SendToEmailAddress As String = "", Optional ByVal AddToSubjectLine As String = "", Optional ByVal attachment As String = "") 

    Dim msg As New EmailMessage 
    msg.Body = message 
    msg.BodyFormat = MailFormat.Html; 'set the MailFormat 
    'Send message 

End Sub 

让我知道这对你的作品。我与Outlook经历了类似的事情,但使用了MailMessage

+1

我认为将格式设置为文本更有可能工作。 HTML会忽略换行符 - 所有的空格都被HTML –

+0

@StuartWhitehouse同等对待啊,我明白了,我的错误。将编辑 – terbubbs

+0

@StuartWhitehouse HM,但我猜默认情况下,BodyFormat已经是文本.. – terbubbs

相关问题