文本框中的Concat ASCII字符

时间:2016-04-23 11:14:22

标签: c# .net winforms textbox ascii

我想要显示一个"标尺"在文本框上。

我正考虑在文本框中显示u031D字符......

所以我这样做:

        for (int nI = 0; nI <= TxtBox_ApercuFichier.Text.Length; nI++)
        {
            TxtBox_Regle.Text = TxtBox_Regle.Text.Trim() + "\u031D";
        }

使用此代码,它仅显示在字符上。我使用标准的特征,例如,字母&#34; A&#34;,concat是好的。

你知道为什么吗?

非常感谢:)

此致

1 个答案:

答案 0 :(得分:1)

\u031D不是ASCII。这是一个unicode代码点。显然是characters between 0300 and 036F are combining characters,意味着它们仅用于修改其他字符。

你可以通过提供任何一方的角色来展示它们,但结果可能仍然不是你想要的:

textBox1.Text = textBox1.Text.Trim() + " " + "\u031d" + " ";
̝//yeilds : ̝ ̝ ̝ ̝ ̝ 
  

更新

我认为这样可以让您开始在表单上构建标尺而不尝试使用文本字符。在表单上实现paint事件:

private void Form1_Paint(object sender, PaintEventArgs e)
{
    int counter = 0;
    Point start = new Point(10, 50);
    Point end = new Point(510, 50);

    using (Pen thickpen = new Pen(Color.Black, 2f))
    using (Pen thinpen = new Pen(Color.Black, 1f))
    {
        e.Graphics.DrawLine(thinpen, start, end);

        for (int i = 0; i < 501; i += 5)
        {
            if (counter % 5 == 0)
            {
                e.Graphics.DrawLine(thickpen, start.X + i, start.Y, start.X + i, start.Y - 5);
            }
            else
            {
                e.Graphics.DrawLine(thinpen, start.X + i, start.Y, start.X + i, start.Y - 3);
            }

            counter++;
        }
    }
}

Basic Ruler