首页 文章

从FontStyle中提取标志(切换FontStyles)[C#]

提问于
浏览
9

我有一点问题 . 我有一个1 RichTextBox和2个按钮 .

我有2个按钮,用于“切换Bold FStyle”和“切换斜体FStyle” .

我想在不影响其他FontStyles的情况下切换FontStyles . 我希望你能理解我 .

下面的代码工作时 combining FontStyles但 is not working when seperating/substracting FontStyles .

private void button1_Click(object sender, EventArgs e)
{
    richTextBox1.SelectionFont = new Font(richTextBox1.Font, (richTextBox1.SelectionFont.Bold == false ? richTextBox1.SelectionFont.Style | FontStyle.Bold : richTextBox1.SelectionFont.Style));
}

private void button2_Click(object sender, EventArgs e)
{
    richTextBox1.SelectionFont = new Font(richTextBox1.Font, (richTextBox1.SelectionFont.Italic == false ? richTextBox1.SelectionFont.Style | FontStyle.Italic : richTextBox1.SelectionFont.Style));
}
  • 我选择了大胆的文字

  • 我选择的文字斜体

  • 我想在Bold仍处于活动状态(或相反)时删除斜体

1 回答

  • 9

    最简单的方法是使用按位异或( ^ ),它只是切换值:

    private void button1_Click(object sender, EventArgs e)
    {
        richTextBox1.SelectionFont = new Font(richTextBox1.Font,
            richTextBox1.SelectionFont.Style ^ FontStyle.Bold);
    }
    
    private void button2_Click(object sender, EventArgs e)
    {
        richTextBox1.SelectionFont = new Font(richTextBox1.Font,
            richTextBox1.SelectionFont.Style ^ FontStyle.Italic);
    }
    

相关问题