Visual Studio 2010 C#Winformで動作を表示する奇妙なUnicode文字があります。私はWindows7x64を使用しています。どういうわけか、コードでこのようなことをすることができ、ボタンを押したときに文字が正しく表示されるようになりました。フォントはデフォルトのMicrosoftSansSerifでした。
private void button1_Click(object sender, EventArgs e)
{
button1.Text = "Initialize System 初始化系统";
}
ただし、プロジェクトを閉じて再度開いた後、ボタンには文字が欠落しているように2つの正方形しか表示されなくなりました。何が変わったのか、なぜ初めて機能したのかわかりません。
いくつかの投稿は、コントロールにMSゴシックを使用することを提案しましたが、いくつかの理由で、プロパティウィンドウでそれを選択することさえできません。コントロールパネル->フォントでチェックインしたので、フォントは私のシステムにあります。MSゴシックがそこにいました。
MSゴシックフォントを許可するためにwinformのフォント設定を変更した可能性のある設定はありますか?
これを機能させる唯一の方法は、ボタンのペイントイベントをオーバーライドして、そこでレンダリングを行うことです。ただし、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();
}