如何为格式文本框中的某些文本设置 FontStyle

本文关键字:文本 设置 FontStyle 格式 | 更新日期: 2023-09-27 17:56:42

我有一个RichTextBox。我想在不更改字体系列的情况下更改所选文本的字体样式。

我使用此代码

 RTBMain.SelectionFont = new Font(RTBMain.SelectionFont, FontStyle.Bold);

它是更改字体样式,但我的问题是:

当我选择带有更改字体系列的文本时,出现错误

对象引用未设置为对象的实例。

因为

RTBMain.SelectionFont=null

例如:

我的文字是"我有一个学生"

FontFamily for "a" is "Tahoma"

"

学生"的字体家庭是"探戈"

然后我选择"学生":FontFamily 为此为空。

但是当我选择"a"或"学生"时:字体系列不是空的。

如何为格式文本框中的某些文本设置 FontStyle

if(RTBMain.SelectionFont != null)
{
 RTBMain.SelectionFont = new Font(RTBMain.SelectionFont, FontStyle.Bold);
}

if (RTBMain.SelectionLength > 0)
{
 RTBMain.SelectionFont = new Font(RTBMain.SelectionFont, FontStyle.Bold);
}

参考

private void ToggleBold()
{
 if (richTextBox1.SelectionFont != null)
 {
  System.Drawing.Font currentFont = richTextBox1.SelectionFont;
  System.Drawing.FontStyle newFontStyle;
  if (richTextBox1.SelectionFont.Bold == true)
  {
     newFontStyle = FontStyle.Regular;
  }
  else
  {
     newFontStyle = FontStyle.Bold;
  }
  richTextBox1.SelectionFont = new Font(
     currentFont.FontFamily, 
     currentFont.Size, 
     newFontStyle
  );
 }

}

例如:

richTextBox1.Find("Text", RichTextBoxFinds.MatchCase);
richTextBox1.SelectionFont = new Font("Verdana", 12, FontStyle.Bold);
richTextBox1.SelectionColor = Color.Red;

您需要首先选择要更改格式的文本。

而且SelectionFont不能同时是两种字体。