首页 > 解决方案 > 不能在 C# 中一起“添加”粗体和斜体

问题描述

我正在尝试添加,因此 Bold 和 Italic 可以使用相同的字体(由用户输入),并且我已经使 curStyle -= FontStyle.Italic (和 Bold)工作,但为什么你不能 += 也添加它。

好吧,只是为了实验,我把它放进去:

FontStyle curStyle = rtbMainWrite.SelectionFont.Style;
if (rtbMainWrite.SelectionFont.Italic == false)
{
      curStyle -= FontStyle.Italic;
} else {
      curStyle -= FontStyle.Italic;
}

rtbMainWrite.SelectionFont = new Font(rtbMainWrite.SelectionFont, curStyle);

但这只是将所有效果加在一起(下划线、删除线、粗体和斜体),但是当我按下粗体按钮(-= FontStyle.Bold)时,粗体消失了,但其他 3 个没有消失,与斜体相同(它删除了斜体并留下了删除线和下划线),认为这可能会有所帮助:)。

斜体的东西看起来也一样,但显然是斜体而不是粗体。

标签: c#

解决方案


基于https://stackoverflow.com/a/20641576/5386938

private void ToggleItalic_Click(object sender, EventArgs e)
{
    FontStyle curStyle = rtbMainWrite.SelectionFont.Style;
    if (rtbMainWrite.SelectionFont.Italic)
    {
        curStyle &= ~FontStyle.Italic;
    }
    else
    {
        curStyle |= FontStyle.Italic;
    }
    rtbMainWrite.SelectionFont = new Font(rtbMainWrite.SelectionFont, curStyle);
}

private void ToggleBold_Click(object sender, EventArgs e)
{
    FontStyle curStyle = rtbMainWrite.SelectionFont.Style;
    if (rtbMainWrite.SelectionFont.Bold)
    {
        curStyle &= ~FontStyle.Bold;
    }
    else
    {
        curStyle |= FontStyle.Bold;
    }
    rtbMainWrite.SelectionFont = new Font(rtbMainWrite.SelectionFont, curStyle);
}

推荐阅读