如何为富文本框中的某些文本设置字体样式?

时间:2013-01-30 09:58:42

标签: c#

我有一个RichTextBox。我想更改所选文本的fontStyle而不更改FontFamily。

我使用此代码

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

这是改变fontstyle,但我的问题是:

当我选择更改fontfamily的文本时,我收到错误

  

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

beacuse

RTBMain.SelectionFont=null

例如:

我的文字是“我有一个学生”

“a”的FontFamily是“Tahoma”

Fontfamily for“student”是“Tango”

然后我选择“学生”:FontFamily为空。

但是当我选择“a”或“student”时:字体系列不为空。

2 个答案:

答案 0 :(得分:3)

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

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

<强> REFERENCE

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
  );
 }

}

答案 1 :(得分:1)

例如:

richTextBox1.Find("Text", RichTextBoxFinds.MatchCase);

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

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

并且SelectionFont不能同时使用两种字体。