Font oldFont = this.richTextBox1.SelectionFont;
Font newFont;
if (oldFont.Bold)
{
newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Bold);//这个“&”和“~”什么用呀?
}
else
{
newFont = new Font(oldFont, oldFont.Style | FontStyle.Bold);//还有这个”|“ 或运算符
}
this.richTextBox1.SelectionFont = newFont;在书上看到这样写,本人没见过,所以请高手解释一下,程序要是显现的是将richtextbox的字体改成粗体。
Font newFont;
if (oldFont.Bold)
{
newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Bold);//这个“&”和“~”什么用呀?
}
else
{
newFont = new Font(oldFont, oldFont.Style | FontStyle.Bold);//还有这个”|“ 或运算符
}
this.richTextBox1.SelectionFont = newFont;在书上看到这样写,本人没见过,所以请高手解释一下,程序要是显现的是将richtextbox的字体改成粗体。
oldFont.Style | FontStyle.Bold)//设置Bold风格
那么 FontStyle =1
~ FontStyle = 0 //对1取反
oldFont.Style & ~FontStyle.Bold就是oldFont.Style & 0
假如oldFont.Style为1(设置了Bold风格),那么 1&0 = 0//结果是0,即取消了Bold风格
假如oldFont.Style为0,那么 0 & 0 =0, 结果也为0
也就是说,oldFont.Style & ~FontStyle.Bold的结果恒为0,就是确保取消了Bold风格
建议楼主看看二进制位运算符的相关知识
|这个是增加这个样式
太感谢yangglemu大哥了!!