vb.net多行文本框中的换行数据未正确显示

时间:2019-04-18 12:32:31

标签: mysql vb.net textbox

我正在从MySQL填充多行TextBox,数据基本上是多行且段落之间有换行符的段落。我的数据在数据库中看起来不错;直接从工作台将数据复制并粘贴到文本编辑器(我使用NotePad ++)时,数据看起来很好。

enter image description here

Test2和Test3之间有一个奇怪的空间,但是我可以忍受。

当我尝试使用MsgBox时,它看起来也不错:

enter image description here

但是将其添加到我的文本框时,我的问题来了:

enter image description here

我查看了包括here在内的几种资源,但是我找不到可行的解决方案,也找不到合理的解释来说明为什么会这样。至少有人有解释,以便我找出解决方法吗?

1 个答案:

答案 0 :(得分:0)

从粘贴到记事本++中的文本来看,从MySql Workbench复制的原始字符串似乎包含多个换行符,并且可能还有一个分隔文本部分的空格。

这变得更加明显,因为MessageBox将文本显示为多行。
.Net MessageBox包装了User32 MessageBox函数,该函数允许\nVbLf-CharW(10)),\rVbCr-{{ 1}})或两者(CharW(13))作为行分隔符。
邮件部分的字符串参数 VBCrLf 将解析并改写以下任何一项:

  

要显示的消息。如果字符串包含多个   行,您可以使用回车和/或   每行之间的换行符。

标准的TextBox相反,要求使用LineFeed +回车符(lpText)分隔文本行:当将文本粘贴到TextBox控件中时,由于仅使用\r\n,因此文本不会以不同的行分隔。

RichTextBox控件更具有国际性(MacOs也将\n替换为* nix \r):它使用\n来分隔文本行。 br /> 如果我们提供\n(Windows风格)作为行分隔符,则控件会将\r\n转换为\r\n
因此,将此文本粘贴到RichTextBox中,原始换行符将按预期进行解析。