c# - 不能在 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 个没有消失,与斜体相同(它删除了斜体并留下了删除线和下划线),认为这可能会有所帮助:)。
斜体的东西看起来也一样,但显然是斜体而不是粗体。
解决方案
基于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);
}
推荐阅读
- java - Angular向java发送错误的日期格式并且无法在表中创建对象
- jquery - 调整颜色框覆盖以适应 div 而不是屏幕宽度
- go - 如何测试 http.Redirect 使用正确的重定向 URI?
- python - 如何从使用 scipy.interpolate.Rbf 创建的样条曲线中计算任意值?
- laravel - 控制器中的更改未反映显示先前的返回值
- python-3.x - 类中的文本 - href 语句
- spring-boot - 来自 Docker 的环境变量不会传递给 Spring
- authentication - 加载 Zookeeper JAAS 登录上下文“客户端”时出现异常
- c# - 即使数据库为空,保存数据库时也会出现重复实体错误
- excel - 如何使用 VBA 在一系列单元格上用 x 的函数替换 x