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

Dav*_*rea 8 c# visual-studio-2010

我的应用程序是使用visual studio 2010 express创建的,除了XP之外,在所有Windows版本中看起来都很好.

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

比较XP和XP以外的应用程序的屏幕截图

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

  • 微软Sans Serif,8.25pt
  • 自动调整大小:是的
  • 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";
Run Code Online (Sandbox Code Playgroud)

这个标签增加了一个有趣的角色

        // 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";
Run Code Online (Sandbox Code Playgroud)

知道是什么导致的吗?

好吧,好吧!看那儿!最后一行有一个有趣的角色! 将代码粘贴到stackoverflow中会发现问题!

那里有很多有趣的人物.只是它们在Visual Studio文本编辑器中以及我尝试过的任何其他编辑器中都是不可见的.它们只在我粘贴在这里时出现!谁创造了它们?

好的,我有我的解决方案:我将手工编辑Designer.cs文件.

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

Eri*_*own 6

我怀疑你在设计器中嵌入了一个字节顺序标记或一些其他Unicode标记(例如,零宽度连接器,非连接器或零宽度空间).这些是完全有效的字符,但XP字体不会对该字符进行表示,因此您可以获得方形填充.