我有一个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”时:字体系列不为空。
答案 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
不能同时使用两种字体。