Halo伙计们,当我尝试用C#winForm
编写程序时,我遇到了问题当我使用
编码我的btn_bold时,我制作了3个按钮(btn_bold,btn_italic,btn_underline)if (rTb_Isi.SelectionFont != null)
{
System.Drawing.Font currentFont = rTb_Isi.SelectionFont;
System.Drawing.FontStyle newFontStyle;
if (rTb_Isi.SelectionFont.Bold == true)
{
newFontStyle = FontStyle.Regular;
}
else
{
newFontStyle = FontStyle.Bold;
}
rTb_Isi.SelectionFont = new Font(
currentFont.FontFamily,
currentFont.Size,
newFontStyle
);
}
}
问题是,当我点击btn_bold时,斜体文字变为粗体,不能是粗体和斜体。
您知道吗,如何使这段代码像Word女士一样可以一起工作?
我尝试更改代码
if (rTb_Isi.SelectionFont != null)
{
System.Drawing.Font currentFont = rTb_Isi.SelectionFont;
System.Drawing.FontStyle newFontStyle;
if (rTb_Isi.SelectionFont.Bold == true)
{
newFontStyle = FontStyle.Regular;
}
else if (rTb_Isi.SelectionFont.Italic == true)
{
newFontStyle = FontStyle.Bold & FontStyle.Italic;
}
else
{
newFontStyle = FontStyle.Bold;
}
rTb_Isi.SelectionFont = new Font(
currentFont.FontFamily,
currentFont.Size,
newFontStyle
);
}
}
但它不起作用:(
答案 0 :(得分:1)
FontStyle枚举具有[Flags]属性。这很简单:
System.Drawing.FontStyle newFontStyle = FontStyle.Regular;
if (rTb_Isi.SelectionFont.Bold) newFontStyle |= FontStyle.Bold;
if (rTb_Isi.SelectionFont.Italic) newFontStyle |= FontStyle.Italic;
if (rTb_Isi.SelectionFont.Underline) newFontStyle |= FontStyle.Underline;
if (newFontStyle != rTb_Isi.SelectionFont.Style) {
rTb_Isi.SelectionFont = new Font(currentFont.FontFamily, currentFont.Size, newFontStyle);
}