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

Newline data not showing up correctly in vb.net multiline TextBox

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

Test2 和 Test3 之间有一个奇怪的 space,但我可以接受。

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

但是在将它添加到我的 TextBox 时,我的问题来了:

我查看了多种资源,包括 here,但找不到有效的解决方案,也找不到合理的解释为什么会发生这种情况。有没有人至少有一个解释,所以我可以想出一个解决方法?

从粘贴到 Notepad++ 的文本来看,从 MySql Workbench 复制的原始字符串似乎包含多个换行字符,并且可能包含分隔文本部分的 space。

这变得更加明显,因为 MessageBox 显示的文本分为多行。
.Net MessageBox wraps the User32 MessageBox 函数,它允许 \n (VbLf - CharW(10))、\r (VbCr - CharW(13)) 或两者 ( VBCrLf) 作为行分隔符。
消息部分的字符串参数 lpText 将解析和适配以下任何一个:

The message to be displayed. If the string consists of more than one line, you can separate the lines using a carriage return and/or linefeed character between each line.

标准的 TextBox 需要使用 LineFeed+Carriage Return (\r\n) 来分隔文本行:当文本粘贴到 TextBox 控件中时,因为只有 \n 时,文本不分行。

RichTextBox 控件更加国际化(MacOs 也为 *nix \n 放弃了 \r):它使用 \n 分隔文本行。
如果我们提供 \r\n(Windows 样式)作为行分隔符,控件会将 \r\n 转换为 \n.
因此,将此文本粘贴到 RichTextBox 中时,将按预期解析原始换行符。