Dad*_*ada 9 c# fonts textbox richtextbox winforms
我有一点问题.我有一个1 RichTextBox和2个按钮.
我有2个按钮,用于"切换Bold FStyle"和"切换斜体FStyle".
我想在不影响其他FontStyles的情况下切换FontStyles.我希望你能理解我.
下面的代码在组合 FontStyles时有效,但在分离/减去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));
}
Hei*_*nzi 10
最简单的方法是使用按位XOR(^),它只是切换值:
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);
}