private void menuItemBold_Click(object sender, System.EventArgs e)
{
Font newFont=new Font(rtfText.SelectionFont,
(rtfText.SelectionFont.Bold?
rtfText.SelectionFont.Style&~FontStyle.Bold:
rtfText.SelectionFont.Style|FontStyle.Bold));
rtfText.SelectionFont=newFont;
}
这段代码从RichTextBox的选中文本当前使用的字体中创建一个新字体,如果字体的样式已经设置好了,就从新字体中删除它,否则就在字体中包含该样式。接着把选种文本的字体设置为新字体。现在我不能理解&和|一元符号具体的逻辑。
请大家帮忙指点,谢谢!
{
Font newFont=new Font(rtfText.SelectionFont,
(rtfText.SelectionFont.Bold?
rtfText.SelectionFont.Style&~FontStyle.Bold:
rtfText.SelectionFont.Style|FontStyle.Bold));
rtfText.SelectionFont=newFont;
}
这段代码从RichTextBox的选中文本当前使用的字体中创建一个新字体,如果字体的样式已经设置好了,就从新字体中删除它,否则就在字体中包含该样式。接着把选种文本的字体设置为新字体。现在我不能理解&和|一元符号具体的逻辑。
请大家帮忙指点,谢谢!
解决方案 »
- 求教C#中 new string[][]与 new string[,]的区别
- ##谁能给个SMTP相关的源码##
- 请问在多页的情况下如何实现DataGridView定位行
- CookieContainer.Add时产生NullReferenceException错误
- 如何截取Message发来的消息???
- 水晶报表如在代码中控制某一个元素的位置?
- 新手求助!C#调用MATLAB如何生成DLL文件
- 帮帮忙,DataTable问题
- .net 升级为.net 2003!!!原来报表不能用啦~~~~~~这是为什么呢?
- 请问那些以"__"开头的数据类型是根据什么命名规则的?什么意思?
- 最近使用installshield X(PE)关于脚本编写的疑问
- 一个很菜的问题,二进制文件中的数据总是反的
(rtfText.SelectionFont.Bold?
rtfText.SelectionFont.Style&~FontStyle.Bold:
rtfText.SelectionFont.Style|FontStyle.Bold)等价于:FontStyle fs;
if (rtfText.SelectionFont.Bold)
fs = rtfText.SelectionFont.Style & ~FontStyle.Bold;
else
fs = rtfText.SelectionFont.Style | FontStyle.Bold;如果原来字体是Bold(加粗)的, 就去掉Bold, 否则就加上Bold.FontStyle.Bold 是一个位标志, FontStyle 枚举共有以下位标志:Regular 0 0000
Bold 1 0001
Italic 2 0010
Underline 4 0100
Strikeout 8 1000rtfText.SelectionFont.Style & ~FontStyle.Bold 就是清除 Bold 位,
rtfText.SelectionFont.Style | FontStyle.Bold 就是置 Bold 位.例如 (0101 & ~0001) 的结果是 0100, 而 (0100 | 0001) 的结果是 0101.