Visual Studio应用程序,XP在一些标签的开头添加了一个额外的方形字符

时间:2013-06-25 16:29:09

标签: c# visual-studio-2010

使用visual studio 2010 express创建的

My application在除XP之外的所有Windows版本中看起来都很好。

XP在某些标签的开头添加了一个额外的方形字符。

Comparison of screenshots of application in XP and other than XP

所有标签的属性,无论是否显示额外字符,都是相同的:

  • Microsoft Sans Serif,8.25pt
  • Autosize:true
  • Forecolor:ControlText

唯一的区别是位置,宽度,当然还有文字。

似乎与使用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文件。

但我在这里保留这个问题,以便其他人可以从中受益。

1 个答案:

答案 0 :(得分:6)

我怀疑您在设计器中嵌入了byte order mark或其他Unicode标记(例如,zero-width joiner,非连接或零宽度空间)。这些是完全有效的字符,但XP字体不会有该字符的表示,因此你得到方形填充。