变量的字体样式

时间:2018-09-09 11:17:09

标签: c# string winforms enums

美好的一天,

我有一个C#应用程序,它以如下格式从设置文件中读取字体样式。

string font_style = "Bold, Italic, Underline, Strikeout";

我要做的是根据设置更改Richtextbox的字体样式。如果有多种字体样式(如粗体,下划线和斜体),则richtextbox字体样式需要更改为该样式。从下面的代码中,它仅将字体样式更改为数组的最后一个样式,即“ Strikeout”,但没有将其更改为粗体,斜体和下划线。有什么办法可以解决这个问题吗?

string font_style = "Bold, Italic, Underline, Strikeout";
string[] fontStrings = font_style.Split(',');

for (int i = 0; fontStrings.Length > i; i++)
{
var fntTab = new Font(FontFamily.GenericSansSerif, 18.0F, FontStyle)Enum.Parse(typeof(FontStyle), fontStrings[i], true));

this.richTextBox1.Font = fntTab;
}

1 个答案:

答案 0 :(得分:1)

您应使用or这样的示例:

 FontStyle res = FontStyle.Regular;
 for (int i = 0; fontStrings.Length > i; i++)
 {
      res = res | (FontStyle)Enum.Parse(typeof(FontStyle), fontStrings[i], true);
 }

 richTextBox1.Font = new Font(FontFamily.GenericSansSerif, 18.0F, res);