日期:2014-05-19  浏览次数:20876 次

文本粗体问题
遇到一个看不懂的地方:在对选取中文本的加粗时代码如下:
  private   void   button1_Click(object   sender,   EventArgs   e)
                {
                        Font   oldFont;
                        Font   newFont;
                        oldFont   =   this.richTextBox1.SelectionFont;
                        if(oldFont.Bold)
                        {newFont=new   Font(oldFont,oldFont.Style&~FontStyle.Bold);
                        }
                          else
                                newFont=new   Font(oldFont,oldFont.Style|FontStyle.Bold);
                                this.richTextBox1.SelectionFont=newFont;
                                this.richTextBox1.Focus();
                }
先判断原来的字体是否为粗体,newFont=new   Font(oldFont,oldFont.Style&~FontStyle.Bold);这句是什么意思?我看不懂括号里面的参数,能不能解释的详细一点啊

------解决方案--------------------

~FontStyle.Bold 按位求反,就是除了FontStyle.Bold位是0,其它位都是1,(比如111011....)
& 是求与操作,1&1=1 1&0=0


oldFont.Style&~FontStyle.Bold
结果可能是:其它的样式不变,就是坚决不要粗体!