我在 Visual Studio 2010 C# Winform 中有一个奇怪的 Unicode 字符显示行为。我正在使用 Windows 7 x64。出于某种原因,我能够在代码中执行类似的操作,并在按下按钮时让字符正确显示。字体是默认的 Microsoft Sans Serif。
private void button1_Click(object sender, EventArgs e)
{
button1.Text = "Initialize System 初始化系统";
}
但是,在我关闭项目并重新打开它之后,按钮现在只显示 2 个方块,就好像缺少字符一样。我不明白会发生什么变化以及为什么它第一次起作用。
一些帖子建议使用 MS Gothic 作为控件,但由于某些原因,我什至无法在属性窗口中选择它。自从我签入控制面板-> 字体以来,字体就在我的系统中。MS Gothic 在那里。
是否有一些设置可以更改 winform 中的字体设置以允许 MS Gothic 字体?
我现在可以让它工作的唯一方法是覆盖按钮的绘制事件,然后在那里进行渲染。不过,这在像 DataGrid 这样的组件上更难做到。这是适用于带有中文字符的按钮的代码:
private void _Paint(object sender, PaintEventArgs e)
{
Button btn = (Button)sender;
SolidBrush drawBrush = new SolidBrush(btn.ForeColor);
StringFormat sf = new StringFormat { Alignment = StringAlignment.Center,
LineAlignment = StringAlignment.Center };
string text = "Initialize System 初始化系统";
btnIntialize.Text = string.Empty;
e.Graphics.DrawString(text, btn.Font, drawBrush, e.ClipRectangle, sf);
drawBrush.Dispose();
sf.Dispose();
}