如何使自动换行将字符串中的空白视为常规字符

本文关键字:空白 常规 字符 何使 自动换行 字符串 | 更新日期: 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");