如何使自动换行将字符串中的空白视为常规字符
本文关键字:空白 常规 字符 何使 自动换行 字符串 | 更新日期: 2023-09-27 18:15:24
我想创建一个多行文本框控件,当所有字符都是等宽的,并且找到合适的字体大小时,该控件将用于应用程序"对齐网格"(例如-对于具有6列的文本框,应该输入6个字符)。-当然有自动换行!
关于上面的问题——没关系。找到了计算字体大小的正确方法。
唯一的问题是,我需要创建一个"Alt+Enter"选项来表示"Enter"。
由于某些原因,我不能使用'r'n,并且需要所有剩余的行空间都充满空白。问题是换行不接受大于文本框宽度的空格。例如:
如果我在一个宽度为8cells的文本框中写入以下内容(或粘贴该字符串等):
"Hello World !"("你好+ 6的空格+世界!")
我想收到:(_=whitespace)
第一行:Hello___
第二行:__world
第三行:!
实际情况是:
第一行:Hello___
第二行:World!
(第二行开头不能有空格)
PS -在调试时,我可以看到空格(所有空格)被认为是字符串的一部分。
首先,尝试Environment.NewLine
而不是'r'n
。这将确保您在目标平台上获得正确的换行符。
其次,自动换行可能会忽略额外的空格,所以您需要用unicode的不换行空格替换正常的空格。对应的unicode字符是'u00A0
。
你需要用unicode不间断空格替换所有正常空格:
string spaceReplacer = "'u00A0";
要使用它,试试这样:
textBox1.Text = textBox1.Text.Replace(" ", spaceReplacer);
或者
textBox1.Text = textBox1.Text.Replace(" ", "'u00A0");