文本粗体问题
遇到一个看不懂的地方:在对选取中文本的加粗时代码如下:
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
结果可能是:其它的样式不变,就是坚决不要粗体!