按位异或运算的问题

robter5611 2005-06-17 02:40:56
在一个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 ,也不行。
请教各位老大,这个问题如何解决?
感激不尽!
兄弟顿首!

...全文
470 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
odlk 2005-07-01
  • 打赏
  • 举报
回复
还可以
9sun888 2005-06-17
  • 打赏
  • 举报
回复
try

改为:
newFont = new Font(oldFont,oldFont.Style ^ FontStyle.Bold);
newFont = new Font(oldFont,oldFont.Style | FontStyle.Bold);
robter5611 2005-06-17
  • 打赏
  • 举报
回复
多谢多谢!

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧