从FontStyle中提取标志(切换FontStyles)
我有一点问题。 我有一个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)); }
- 我选择了大胆的文字
- 我选择了文本Italic
- 我希望在Bold仍处于活动状态(或相反)时删除Italic
最简单的方法是使用按位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); }