Unicode字符串被TextBox Visual C#终止(不是显示,而是实际字符串)

Unicode字符串被TextBox Visual C#终止(不是显示,而是实际字符串),c#,unicode,textbox,C#,Unicode,Textbox,我有一个应用程序,需要使用特定的查找表样式字体显示unicode字符串 此字体具有字符U+0000到U+0020的实际符号 我可以从一组字符构建字符串。问题是当我尝试将此字符串设置为文本框时 无论我为textbox选择什么字体(特殊字体或其他),当我执行“TextBox1.Text=mycrazystring”时,然后检查TextBox1的Text属性(我刚刚设置),我得到的是“”,没有任何结果 这是因为不支持unicode字符U+0000到U+0020吗? 他们是否会像我怀疑的那样,访问换行符

我有一个应用程序,需要使用特定的查找表样式字体显示unicode字符串

此字体具有字符U+0000到U+0020的实际符号

我可以从一组字符构建字符串。问题是当我尝试将此字符串设置为文本框时

无论我为textbox选择什么字体(特殊字体或其他),当我执行“TextBox1.Text=mycrazystring”时,然后检查TextBox1的Text属性(我刚刚设置),我得到的是“”,没有任何结果

这是因为不支持unicode字符U+0000到U+0020吗? 他们是否会像我怀疑的那样,访问换行符、制表符或退格等函数(当它们被放入文本框时)

如果我构建一个包含字符0000到0023的字符串,我希望在字符串被分配给它之后,TextBox1.Text属性中至少会看到一个感叹号,但没有骰子


我是否需要制作一种自定义字体,将当前字体偏移0020?

不应将Unicode字符映射到不相关的字形。如果文本布局算法做了一些不合适的事情,最终可能会出现很多问题。将控制字符映射到自定义图示符是疯狂的;它肯定会混淆UI小部件和许多其他工具

我是否需要自定义字体,将当前字体偏移0020


否,您需要将其移位+E000或更大。

是否在richtextbox中尝试了相同的字符串?对于普通Windows文本框,U+0000表示字符串的结尾。尝试用其他东西替换它,例如U+2400(␀).这就是空字符的用途吗?这当然可以解释问题。谢谢!或者使用U+2400到U+2420(),它们专门用作控制字符的符号。正是私有使用区!解决了问题。这些控制字符肯定是疯了。