读书人

文本粗体有关问题

发布时间: 2012-01-23 21:57:28 作者: rapoo

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

读书人网 >C#

热点推荐