C#入门经典中的SelectionFont属性为null

Posted creep

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#入门经典中的SelectionFont属性为null相关的知识,希望对你有一定的参考价值。

14.6.2.richtextbox控件:

private void buttonbold_click(object sender, eventargs e)
        {
            font newfont;
            font oldfont;
            oldfont = this.richtextboxtext.selectionfont;
            if (oldfont.bold)
                newfont = new font(oldfont, oldfont.style &~fontstyle.bold);
            else
                newfont = new font(oldfont, oldfont.style | fontstyle.bold);
            this.richtextboxtext.selectionfont=newfont;
            this.richtextboxtext.focus();
        }

  例子用于修改选中文本的字体属性,但是当我使用搜狗输入法的网站自动补全功能时,出现了一个bug, is.richtextboxtext.electionfont始终为null.

  经再三测试之后,发现原因在于:selectionfont不能同时读取不同字体的属性.

  而使用搜狗输入法时,输入的标点符号的字体与其他文字的字体不是同一种字体.因此始终为null,对于该问题暂时只能当selectionfont为null时,直接采用当前显示文本的font属性:

oldfont=this.richtextboxtext.selectionfont==null?this.richtextboxtext.font:this.richtextboxtext.selectionfont;

  这是初步解决方法,来自于http://www.seebit.org/page/18/,想要继续完善只能等我学完winform才行呐才学c#一个月,实在是艰难的旅程啊.

  目前遇见的最大难题,运行程序时出现(未将对象引用设置到对象的实例。。)的错误,这种错误的原因实在是多种多样啊,全部有待解决.

以上是关于C#入门经典中的SelectionFont属性为null的主要内容,如果未能解决你的问题,请参考以下文章

《c# 从入门经典》 (第6版) - c# 简介

经典C#编程理解,概要,经典

《C#零基础入门之百识百例》(五十五)抽象类 -- 经典猫狗案例

C#入门经典Lambda

C#入门经典(v6) 读书笔记 (第一部分 C#语言)

正经学C#_介绍与其编写基础:《c#入门经典》