4

RichTextBoxがあります。FontFamilyを変更せずに、選択したテキストのfontStyleを変更したい。

私はこのコードを使用します

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

これはフォントスタイルの変更ですが、私の問題は次のとおりです。

fontfamilyを変更したテキストを選択すると、エラーが発生します

オブジェクト参照がオブジェクト インスタンスに設定されていません。

なぜなら

RTBMain.SelectionFont=null

例えば ​​:

私のテキストは「私には学生がいます」です

「a」のFontFamilyは「Tahoma」です

「学生」のFontFamilyは「タンゴ」です

次に、「学生」を選択します。これのFontFamilyはnullです。

しかし、「a」または「student」を選択すると、フォントファミリはnullになりません。

4

2 に答える 2

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

参照

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

}

于 2013-01-30T10:10:09.863 に答える
1

例えば:

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

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

まず、フォーマットを変更したいテキストを選択する必要があります。

またSelectionFont、同時に 2 つのフォントにすることはできません。

于 2013-01-30T10:01:23.860 に答える