如何为格式文本框中的某些文本设置 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"或"学生"时:字体系列不是空的。
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
不能同时是两种字体。