我有一个用于文本格式化的面板,我必须得到子和上标,但是不能通过将\ sub或\ super插入RTF来完成(RTF是什么我到底需要)。 这是我通过插入\ sub:
设置上标的方法public void SetSuperscript()
{
ITextSelection selectedText = _textbox.Document.Selection;
if (selectedText != null)
{
ITextCharacterFormat charFormatting = selectedText.CharacterFormat;
charFormatting.Superscript= FormatEffect.On;
selectedText.CharacterFormat = charFormatting;
}
}
现在我知道我也可以这样做:
public void SetSuperscript()
{
ITextSelection selectedText = _textbox.Document.Selection;
if (selectedText != null)
{
ITextCharacterFormat charFormatting = selectedText.CharacterFormat;
charFormatting.Size /= 2;
charFormatting.Position = charFormatting.Size;
selectedText.CharacterFormat = charFormatting;
}
}
它的效果一样好。问题在于创建下标:
public void SetSubscript()
{
ITextSelection selectedText = _textbox.Document.Selection;
if (selectedText != null)
{
ITextCharacterFormat charFormatting = selectedText.CharacterFormat;
charFormatting.Size /= 2;
charFormatting.Position = -charFormatting.Size;
selectedText.CharacterFormat = charFormatting;
}
}
以上代码抛出异常"值不在预期范围内。"它是由这条线引起的:
charFormatting.Position = -charFormatting.Size;
我在那里指定一个负值(根据文档,这是正常的),因为我需要选择的文本低于普通文本一半的高度。我做错了什么?
丹尼尔