我想创建一个多行文本框控件,将用作应用程序" Snap to grid"当所有字符都是等宽字符时,找到拟合字体大小(例如 - 对于包含6列的文本框,应输入正好6个字符)。 - 当然使用Word Wrap!
至于上述情况 - 没关系。找到了计算字体大小的正确方法。
唯一的问题是我需要创建一个" Alt + Enter"表示"输入"的选项。
由于某些原因,我无法使用\ r \ n并且需要所有剩余的行空间都充满空白。 问题是包装不能接受大于文本框宽度的空间。 例如:
如果我在宽度= 8个字符的文本框中写入,则以下(或粘贴该字符串等):
" Hello World!" (" Hello + 6Whitespaces + World!")
我想接受:(_ =空格)
第一行:Hello___
第二行:___世界
第三行:!
真正发生的是:
第一行:你好___
第二行:世界!
(第二行开头根本没有空格)
PS - 在调试时,我可以看到空格(所有空格)都被视为字符串的一部分。
答案 0 :(得分:1)
首先,尝试Environment.NewLine
而不是\r\n
。这将确保您在目标平台上获得正确的换行符。
其次,Word Wrap可能忽略了额外的空格,因此您需要用unicode不间断空格替换普通空格。其中的unicode字符为\u00A0
。
您需要使用unicode非中断空格替换所有常规空格:
string spaceReplacer = "\u00A0";
要使用它,试试这个:
textBox1.Text = textBox1.Text.Replace(" ", spaceReplacer);
甚至这个:
textBox1.Text = textBox1.Text.Replace(" ", "\u00A0");