特定字符输入的文本框问题

时间:2018-01-05 07:37:19

标签: c# winforms unicode textbox windows-10

我有一个Winforms应用程序,其中包含一些使用Microsoft Sans Serif字体的文本框。

在Windows 7上运行我的应用程序时,一切都按预期工作。 当我在Windows 10上运行应用程序时,我无法在文本框中键入或粘贴字母'Â'(U + 0100)和Ē(U + 0113)。 (字符Â转换为A,字符Ē转换为E)

当我打开字体设置时,我看到Microsoft Sans Serif同时支持(U + 0100)和(U + 0113)。

是否有人遇到类似问题?

1 个答案:

答案 0 :(得分:1)

问题是你的字体大小。将文本框的字体大小更改为更大的值就足够了。我把它改成了12磅,它显然很明显。

private void OnForm1_Loading(object sender, EventArgs e)
{
    this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif",
        12F,
        System.Drawing.FontStyle.Regular,
        System.Drawing.GraphicsUnit.Point,
        ((byte)(0)));
    // TODO: make a proper font using the original font properties of textBox1
    this.textBox1.Text = "ĀĒ";
}

9pt是显示波浪号的最小字体大小。字体大小为8pt时,波形符号消失了。