private void button3_Click(object sender, EventArgs e)
        {
            Font oldFont;
            Font newFont;            oldFont = this.richTextBox1.SelectionFont;
            if (oldFont.Italic)
            {
                newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Italic);//不懂这句话的意思,
            }
            else
            {
                newFont = new Font(oldFont,oldFont.Style | FontStyle.Italic);
            }
            this.richTextBox1.SelectionFont = newFont;
            this.richTextBox1.Focus();
        }
//oldFont.Style & ~FontStyle.Italic是什么意思?
// newFont = new Font(oldFont,oldFont.Style | FontStyle.Italic);

解决方案 »

  1.   

                if (oldFont.Italic)//如果旧字体有斜体
                {
                    newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Italic);//去除斜体
                }
                else//如果没有斜体
                {
                    newFont = new Font(oldFont,oldFont.Style | FontStyle.Italic);//加上斜体
                }
      

  2.   

    ~这个符号是什么意思啊?
    怎么oldFont.Style 和 ~FontStyle.Italic 能加这个运算符&,加了的结果是什么呢?
      

  3.   

    oldFont.Style和FontStyle.Italic实际上都是数值
    ~是非,即将斜体标识位设为0,然后与原来的字体样式&,得到的就是没有斜体的新样式