按位异或运算的问题
在一个richtextbox中,设置选定文本的字体。
比如设置 Bold,如果选中文本已经是 Bold 的话,则恢复正常格式,如果还不是 Bold 的话,则使之 Bold.
查看 FontStyle 枚举,发现几个数值全是按二进制分在不同位上的。这跟Windows系统枚举一样。在汇编中用逻辑运算即可搞定。
于是我编了如下代码
//........
//
Font oldFont,newFont;
oldFont = this.rchText.SelectionFont;
if(oldFont.Bold)
newFont = new Font(oldFont,oldFont.Style ^ Font.Bold);
else
newFont = new Font(oldFont,oldFont.Style | Font.Bold);
this.rchText.SelectionFont = newFont;
//..........
结果有错曰:
运算符“^”无法应用于“System.Drawing.FontStyle”和“bool”类型的操作数
运算符“|”无法应用于“System.Drawing.FontStyle”和“bool”类型的操作数
FontStyle 枚举声明未指定基类型,则应该为默认的 int, Font.Bold 应该为 int 型,值为 1.怎么变成bool 了?
把他们全部转换成 int ,也不行。
请教各位老大,这个问题如何解决?
感激不尽!
兄弟顿首!