读书人

为啥捕捉不到System.NullReferenceExc

发布时间: 2013-11-04 16:56:03 作者: rapoo

为啥捕捉不到System.NullReferenceException异常

  
private void buttonBold_Click(object sender, EventArgs e)
{
Font oldFont, newFont;
oldFont = this.RichTextBox.SelectionFont;//获取旧字体
try
{
if (oldFont.Bold)
{ newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Bold); }
else
{
newFont = new Font(oldFont, oldFont.Style | FontStyle.Bold);
}
this.RichTextBox.SelectionFont = newFont;
this.RichTextBox.Focus();
}
catch (System.NullReferenceException E)
{
MessageBox.Show(E.Message);
}
catch
{
MessageBox.Show("......");
}
}


纯中文是好好,纯英文也好好的,中英文一选中一起的时候就出问题了,看了半天还在纠结中。有没有大侠说说啊!!么么哒。。。。。。 异常 字体
[解决办法]
你的中文字体和英文字体有可能不同,因此共同选中之后可能系统不知道该用哪个字体,干脆不选,即是空。你可以测试一下。
你把这句if (oldFont.Bold)
更改为 if (oldFont!=null && oldFont.Bold) 试试
[解决办法]
原因很简单,你输入的英文默认是Arial字体,而汉字是宋体
[解决办法]
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.richtextbox.selectionfont.aspx

如果当前选定文本具有多种指定字体,则此属性为 null。

读书人网 >C#

热点推荐