大部分控件你把属性设置成什么,那么预览以及运行的时候自然字体也就是那种类型——比如普通的WinForm程序中,TextBox的字体包含字号、样式等属性……一旦设置了它们,你运行带有此文本框的程序,自然输入的字体样式等也是如此。
但是RichTextBox不然——如果你把一个RichTextBox设置成“宋体,二号”或者其它中文字体,那么你运行程序,你会很惊讶的发现输入中文的时候的确是宋体二号,但是输入西文(如英语等),字体就不再是中文字体了,而是Arial或者其它默认的某个国家的西文字体。
这是为什么呢?究其原因在于RichTextBox有一个LanguageOption属性,它是一个枚举值(可以参考:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.richtextboxlanguageoptions)——默认情况下会根据键盘调整自动调整输入字体大小、字态……。因此必须重设该属性(设置为UIFonts即可,Form_Load事件中)。
private void MainForm_Load(object sender, EventArgs e)
{
TxtEditor.LanguageOption = RichTextBoxLanguageOptions.UIFonts; //防止中英文字体不一致
}