我正在从 MySQL 填充一个多行文本框,数据基本上是多行段落,中间有换行符。我的数据在数据库中看起来很好;当我直接从 Workbench 将数据复制并粘贴到文本编辑器(我使用 NotePad++)时,数据看起来很好。
Test2 和 Test3 之间有一个奇怪的空间,但我可以接受。
当我尝试使用 MsgBox 时,它看起来也不错:
但是在将它添加到我的 TextBox 时,我的问题来了:
我查看了多种资源,包括 here ,但我找不到有效的解决方案,也找不到合理的解释为什么会这样。有没有人至少给出解释,以便我找出解决方法?
最佳答案
从粘贴到 Notepad++ 的文本来看,原始字符串是从 MySql Workbench 复制的, 包含多个换行符,可能还有一个分隔文本部分的空格。
这变得更加明显,因为 MessageBox 显示的文本分为多行。
.Net MessageBox包装 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 需要换行+回车 (\r\n
) 来分隔文本行:当文本被粘贴到 TextBox 控件中时,因为只有 使用\n
,文本不分行。
RichTextBox 控件更国际化(MacOs 也放弃了 \r
用于 *nix \n
):它使用 \n
分隔文本行。
如果我们提供 \r\n
(Windows 样式)作为行分隔符,控件会将 \r\n
转换为 \n
。
因此,将此文本粘贴到 RichTextBox 中时,将按预期解析原始换行符。
关于mysql - 换行数据未在 vb.net 多行文本框中正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55746134/