下面介绍一下在RichTextBox设定上标和下标的SelectionCharOffset属性。SelectionCharOffset属性是以字符串表示正常基准线为准, 进行画素的设定。想表示为上标时设定为正数,想表示下标时设定为负数。
下面的例子「H2O(注1)」就是通过设定画素而生成的。
[C#]
//RichTextBox清空 richTextBox1.Clear();
//字母"H"是通常设定 richTextBox1.SelectedText = "H";
//数字"2"设定为基准线下5画素
richTextBox1.SelectionCharOffset = -5;
richTextBox1.SelectedText = "2";
//字母"O"也是通常设定
richTextBox1.SelectionCharOffset = 0;
richTextBox1.SelectedText = "O";
//"(注1)"设定为基准线上5画素
richTextBox1.SelectionCharOffset = 5;
richTextBox1.SelectedText = "(注1)";
//字母"O"也是通常设定
richTextBox1.SelectionCharOffset = 0;
[VB]
在RichTextBox 控 件 中 实 现 上、 下 标 形 式
---- VB 提 供 了 一 个 优 秀 的 控 件RichTextBox, 我 们 可 以 在 其 中 实 现 文 本 的 各 种 编 辑 方 式。 下 面 的 程 序 是 在RichTextBox 控 件 中 实 现 上 标 和 下 标 的 形 式, 主 要 是 使 作 为 上、 下 标 的 字 符 的 尺 寸 小 一 些, 位 置 在 基 线 上 下 浮 动。 程 序 利 用 属 性SelCharOffset, 由 它 确 定RichTextBox 控 件 中 的 文 本 是 出 现 在 基 线 上( 正 常 状 态), 当SelCharOffset >0 时, 文 本 出 现 在 基 线 之 上, 成 为 上 标 形 式;
---- 当SelCharOffset< 0 时, 文 本 出 现 在 基 线 之 下, 成 为 下 标 形 式。
---- 该 属 性 在 设 计 时 无 效。
---- 在 表 单 的Load 事 件 中 添 加 以 下 代 码:
Private Sub Form_Load()
RichTextBox1.Font.Name = "Times New Roman"
RichTextBox1.Font.Size = 10
RichTextBox1.Text = "H2SO4"
注释: Move the numbers down 2 points.
OffsetRichText RichTextBox1, 1, 1, 2
OffsetRichText RichTextBox1, 4, 1, -2
End Sub
Private Sub OffsetRichText(box As RichTextBox, start As Integer, length As Integer, offset As Integer)
注释:box指RichTextBox控件;start指作为上下标的
注释:字符的起始位置;length指上下标字符的长度;
注释:offset指上标还是下标,大于0上标;小于0下标。
box.SelStart = start
box.SelLength = length
box.SelFontSize = box.Font.Size -abs(offset)
box.SelCharOffset = ScaleY(offset,vbPoints, vbTwips)
box.SelStart = 0
box.SelLength = 0
End Sub
该程序在VB4/32和VB5上调试通过。最后在RichTextBox
控件中字符串的形式为:H2SO4.
---- VB 提 供 了 一 个 优 秀 的 控 件RichTextBox, 我 们 可 以 在 其 中 实 现 文 本 的 各 种 编 辑 方 式。 下 面 的 程 序 是 在RichTextBox 控 件 中 实 现 上 标 和 下 标 的 形 式, 主 要 是 使 作 为 上、 下 标 的 字 符 的 尺 寸 小 一 些, 位 置 在 基 线 上 下 浮 动。 程 序 利 用 属 性SelCharOffset, 由 它 确 定RichTextBox 控 件 中 的 文 本 是 出 现 在 基 线 上( 正 常 状 态), 当SelCharOffset >0 时, 文 本 出 现 在 基 线 之 上, 成 为 上 标 形 式;
---- 当SelCharOffset< 0 时, 文 本 出 现 在 基 线 之 下, 成 为 下 标 形 式。
---- 该 属 性 在 设 计 时 无 效。
---- 在 表 单 的Load 事 件 中 添 加 以 下 代 码:
Private Sub Form_Load()
RichTextBox1.Font.Name = "Times New Roman"
RichTextBox1.Font.Size = 10
RichTextBox1.Text = "H2SO4"
注释: Move the numbers down 2 points.
OffsetRichText RichTextBox1, 1, 1, 2
OffsetRichText RichTextBox1, 4, 1, -2
End Sub
Private Sub OffsetRichText(box As RichTextBox, start As Integer, length As Integer, offset As Integer)
注释:box指RichTextBox控件;start指作为上下标的
注释:字符的起始位置;length指上下标字符的长度;
注释:offset指上标还是下标,大于0上标;小于0下标。
box.SelStart = start
box.SelLength = length
box.SelFontSize = box.Font.Size -abs(offset)
box.SelCharOffset = ScaleY(offset,vbPoints, vbTwips)
box.SelStart = 0
box.SelLength = 0
End Sub
该程序在VB4/32和VB5上调试通过。最后在RichTextBox
控件中字符串的形式为:H2SO4.