My application在除XP之外的所有Windows版本中看起来都很好。
XP在某些标签的开头添加了一个额外的方形字符。
所有标签的属性,无论是否显示额外字符,都是相同的:
唯一的区别是位置,宽度,当然还有文字。
似乎与使用Omega等特殊字符无关。 它与宽度无关。
形成(应用程序).Designer.cs:
此标签没问题:
// label22
//
this.label22.AutoSize = true;
this.label22.Location = new System.Drawing.Point(58, 23);
this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(20, 13);
this.label22.TabIndex = 32;
this.label22.Text = "Ah";
这个标签增加了一个有趣的角色:
// lblPackCurrUnits
//
this.lblPackCurrUnits.AutoSize = true;
this.lblPackCurrUnits.Location = new System.Drawing.Point(44, 300);
this.lblPackCurrUnits.Name = "lblPackCurrUnits";
this.lblPackCurrUnits.Size = new System.Drawing.Size(14, 13);
this.lblPackCurrUnits.TabIndex = 17;
this.lblPackCurrUnits.Text = "◊A";
有什么原因可以解释?
好吧,好吧!看那儿!在最后一行中有一个有趣的角色! 将代码粘贴到stackoverflow中会发现问题!
那里有很多有趣的人物。只是它们在Visual Studio文本编辑器中以及我尝试过的任何其他编辑器中都是不可见的。它们只在我粘贴在这里时出现!谁创造了它们?
好的,我有我的解决方案:我将手工编辑Designer.cs文件。
但我在这里保留这个问题,以便其他人可以从中受益。
答案 0 :(得分:6)
我怀疑您在设计器中嵌入了byte order mark或其他Unicode标记(例如,zero-width joiner,非连接或零宽度空间)。这些是完全有效的字符,但XP字体不会有该字符的表示,因此你得到方形填充。