RichTextBox 控件

RichTextBox 控件不仅允许输入和编辑文本，同时还提供了标准 TextBox 控件未具有的、更高级的指定格式的许多功能。

语法

RichTextBox

说明

RichTextBox 提供了一些属性，对于本控件文本的任何部分，用这些属性都可以指定格式。为了改变文本的格式，首先要选定它。只有选定的文本才能赋予字符和段落格式。使用这些属性，可把文本改为粗体或斜体，或改变其颜色，以及创建上标和下标。通过设置左右缩进和悬挂式缩进，可调整段落的格式。

RichTextBox 控件能以 RTF 格式和普通 ASCII 文本格式这两种形式打开和保存文件。可以使用控件的方法（LoadFile 和 SaveFile）直接读写文件，或使用与 Visual Basic 文件输入/输出语句联结的、诸如 SelRTF 和 TextRTF 之类的控件属性打开和保存文件。

通过使用 OLEObjects 集合，RichTextBox 控件支持对象的嵌入。插入到控件中的每个对象，都代表 OLEObject 对象。用这样的控件，就可以创建包含其它文档或对象的文档。例如，可创建这样的文档，它有一个嵌入的 Microsoft Excel 电子数据表格、或 Microsoft Word 文档、或其它已在系统中注册的 OLE 对象。为了把一个对象插入到 RichTextBox 控件中，只需简单地拖动一个文件（例如 在Windows 95“资源管理器”中的拖动），或拖动的是另一应用程序（如 Microsoft Word）所用文件的一个突出显示的区域，然后将所拖内容直接放入控件。

RichTextBox 控件支持 OLE 对象的剪贴板和 OLE 拖/放操作。从剪贴板中粘贴进一个对象时，它被插在当前插入点处。一个对象被拖放到控件时，插入点将跟踪着鼠标光标的移动，直至鼠标按钮释放时该对象即被插入。这种行为和 Microsoft Word 的一样。

使用 SelPrint 方法，可以打印 RichTextBox 控件的全部或部分文本。

因为 RichTextBox 是一个数据绑定控件，通过 Data 控件可以把它绑定到 Microsoft Access 数据库的 Binary 或 Memo 字段上，也可把它绑定到具有相同容量的其它数据库字段上（例如 SQL 服务器中的 TEXT 数据类型的字段）。

标准 TextBox 控件用到的所有属性、事件和方法，RichTextBox 控件几乎都能支持，例如 MaxLength、 MultiLine、 ScrollBars、 SelLength、 SelStart 和 SelText。对于那些可以使用 TextBox 控件的应用程序，也可以很容易地使用 RichTextBox 控件。而且，RichTextBox 控件并没有和标准 TextBox 控件一样具有 64K 字符容量的限制。

发行注意   为了能在应用程序中使用 RichTextBox 控件，必须把 RICHTX32.OCX 文件添加到工程中。因此，在应用程序发行时，RICHTX32.OCX 文件就应安装在 Microsoft Windows 的 SYSTEM 目录内。有关怎样把自定义控件添加到工程中的详细内容，请参阅《程序员指南》。


DisableNoScroll 属性

返回或设定一个值，以确定 RichTextBox 控件的滚动条是否无效。

语法

object.DisableNoScroll [= boolean]

DisableNoScroll 属性包含下面部分：

部分	描述
object	对象表达式其值是“应用于”列表中的一个对象。
Boolean	布尔表达式用来指定滚动条是否无效，指定方式如“设置值”中所述。
设置值

boolean 的设置值是：

设置值	描述
False	（缺省）滚动条在显示时正常出现。
True	滚动条在显示时变暗。
说明

如果 ScrollBars 属性被设为 0（无），则忽略 DisableNoScroll 属性。如果 ScrollBars 被设为 1（水平）、2（垂直）、或 3（水平和垂直），当文本的行数太少以至无法垂直滚动或字符太少而无法水平滚动时，RichTextBox 控件相应滚动条将无效。


FileName 属性（RichTextBox 控件）

在设计时返回或设置装入 RichTextBox 控件的文件名。

语法

object.FileName

object 所在处代表对象表达式，其值是“应用于”列表中的一个对象。

设置值

对此属性，仅能指定文本文件或有效的 .RTF 文件名。


Find 方法

根据给定的字符串，在 RichTextBox 控件中搜索文本。不支持命名的参数。

语法

object.Find(string, start, end, options)

Find 方法的语法包含下面部分：

部分	描述
object	必需的。对象表达式，其值是“应用于”列表中的一个对象。
string	必需的。要在控件中查找的字符串表达式。
start	可选的。决定从哪儿开始搜索的整数字符索引。控件中的每一个字符都有一个可唯一标识的整数索引。控件中文本的第一个字符的索引是 0。
end	可选的。决定在哪儿结束搜索的整数字符索引。
options	可选的。用来指定一个或多个可选功能常数的和。所指定的功能如“设置值”中所述。
设置值

对 options 的设置值包括：

常数	值	描述
rtfWholeWord	2	确定匹配是基于整个单词还是单词的片段。
rtfMatchCase	4	确定匹配是否基于指定字符串与字符串文本的大小写字体一致。
rtfNoHighlight	8	确定匹配是否在 RichTextBox 控件中突出显示。
通过把它们的值或常数相加、或者用 Or 运算符使这些值相结合的形式，可使用多个选项。

说明

如果找到被搜索的文本，Find 方法将突出显示所指定的文本，同时返回突出显示的第一个字符的索引。如果所指定的文本没有找到，Find 方法则返回 -1。

当 HideSelection 属性是 True、且 RichTextBox 控件没有焦点时，如果所使用的 Find 方法没有 rtfNoHighlight 选项，则控件仍然突出显示所找到的文本。此后使用 Find 方法，若插入点不移动，将只搜索突出显示的文本。

Find 方法搜索行为，基于 start 和 end 参数指定值的组合而变化。下表描述了可能的搜索行为：

开始	结束	搜索行为
指定	指定	从指定的开始位置到指定的结束位置进行搜索。
指定	忽略	在控件中，从指定的位置搜索到文本尾。
忽略	指定	从当前插入点搜索到指定的结束位置。
忽略	忽略	若选择了文本，从当前选择开始搜索；若没选择文本，则搜索控件的整个内容。


Find 方法示例

该示例是根据在 TextBox 控件中输入的一个单词，在 RichTextBox 控件中查找一个字符串。找到指定的字符串后，显示一个消息框。在消息框中给出指定单词所在行的行号。要试用此例，应在窗体上放置一个 RichTextBox 控件、一个 CommandButton 控件和一个 TextBox 控件。加载一个文件到 RichTextBox 中，并将这部分代码粘贴到窗体的通用声明部分中。然后运行此例，在 TextBox 中输入一个单词，再单击 CommandButton。

Private Sub Command1_Click()

Dim FoundPos As Integer

Dim FoundLine As Integer

'查找 TextBox 控件中指定的文本。

FoundPos = RichTextBox1.Find(Text1.Text, , , rtfWholeWord)

'根据是否找到文本，显示相应的消息。

If FoundPos <> -1 Then

'返回已找到文本所在行的行号。

FoundLine = RichTextBox1.GetLineFromChar(FoundPos)

MsgBox "Word found on line " & CStr(FoundLine)

Else

MsgBox "Word not found."

End If

End Sub


GetLineFromChar 方法

返回 RichTextBox 控件中含有指定字符位置的行的行号。不支持命名的参数。

语法

object.GetLineFromChar(charpos)

GetLineFromChar 方法包含下面部分：

部分	描述
object	必需的。对象表达式，其值是“应用于”列表中的一个对象。
charpos	必需的。一个长整数，用以指定字符的索引，该字符所在行是要标识的。在 RichTextBox 控件中，第一个字符的索引是 0。
说明

使用 GetLineFromChar 方法，用来在 RichTextBox 控件文本中寻找一行，它含有文本中的某个字符位置。需用这种方法的原因，是文本中每行字符的数目可能变化，致使要找出文本中哪一行包含着由其文本中位置所标识的、某个特定的字符，就非常困难。


GetLineFromChar 方法示例

该示例基于在 TextBox 控件中键入的一个单词，从一个 RichTextBox 控件中查找一个字符串。找到这个指定的字符串后，即显示一个信息框，给出包含此指定单词行的行号。要试用此例，在窗体中建立一个 RichTextBox 控件，一个 CommandButton 控件，和一个 TextBox 控件，再在 RichTextBox 控件中加载一个文件，并且把下面的代码粘贴到窗体的通用声明部分中。运行此例，向 TextBox 中键入一个单词，然后单击 CommandButton。

Private Sub Command1_Click()

Dim FoundPos As Integer

Dim FoundLine As Integer

'寻找 TextBox 控件中指定的文本。

FoundPos = RichTextBox1.Find(Text1.Text, , , rtfWholeWord)

'给出基于文本是否找到的信息。

If FoundPos <> -1 Then

'返回含有所找到文本行的行号。

FoundLine = RichTextBox1.GetLineFromChar(FoundPos)

MsgBox "Word found on line " & CStr(FoundLine)

Else

MsgBox "Word not found."

End If

End Sub


SelHangingIndent、SelIndent、 SelRightIndent 属性

返回或设置 RichTextBox 控件中段落的页边距设置值，该控件不是包括有当前选定就是要在当前插入点添加。这些属性在设计时无效。

语法

object.SelHangingIndent [= integer]

object.SelIndent [= integer]

object.SelRightIndent [= integer]

SelHangingIndent、 SelIndent 和 SelRightIndent 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
integer	整数，它决定缩放量。这些属性用包含 RichTextBox 控件的 Form 对象的刻度模式单位。
说明

对于受影响的段落，SelIndent 属性指定了 RichTextBox 控件的左边缘和选定或添加的文本的左边缘之间的距离。类似的，SelRightIndent 属性指定了 RichTextBox 控件的右边缘和选定或添加的文本的右边缘之间的距离。

SelHangingIndent 属性指定了选定段落（如 SelIndent 属性所指定的）中文本首行左边缘与本段下面各行左边缘之间的距离。

如果其选定跨越了具有不同页边距设置值的多个段落时，这些属性将返回零 (0)。


SelHangingIndent、 SelIndent、 SelRIghtIndent 属性示例

该示例选定 RichTextBox 控件中所有文本，然后设置左右缩进来创建页边距。要试用此例，在窗体上要建立一个 RichTextBox 控件，一个 CommandButton 控件，和一个 TextBox 控件，再在 RichTextBox 控件中加载一个文件，并且把下面的代码粘贴到窗体的通用声明部分中，然后运行此例。

Private Sub Command1_Click()

Dim Margins As Integer

Margins = CInt(Text1.Text)

With RichTextBox1

.SelStart = 1

.SelLength = Len(RichTextBox1.Text)

.SelIndent = Margins

.SelRightIndent = Margins

End With

End Sub


LoadFile 方法

向 RichTextBox 控件加载一个 .RTF 文件或文本文件。不支持命名的参数。

语法

object.LoadFile pathname, filetype

LoadFile 方法的语法包含下面部分：

部分	描述
object	必需的。对象表达式，其值是“应用于”列表中的一个对象。
pathname	必需的。字符串表达式，它定义加载控件的文件路径和文件名。
filetype	可选的。整数或常数，按照“设置值”中的描述确定装入文件的类型。
设置值

filetype 的设置值是：

常数	值	描述
rtfRTF	0	（缺省）RTF。被加载的文件必须是一个合法的 .RTF 文件。
rtfText	1	文本。RichTextBox 控件可加载任一文本文件。
说明

当用 LoadFile 方法加载一个文件时，加载文件的内容将取代 RichTextBox 控件的全部内容。这将使 Text 和 RTFText 属性的值改变。

也可用 Visual Basic 的 Input 函数和 RichTextBox 控件的 TextRTF 和 SelRTF 属性读取 .RTF 文件。例如，可按如下方式加载一个 .RTF 文件的内容到 RichTextBox 控件中：

Open "mytext.rtf" For Input As 1

RichTextBox1.TextRTF = Input$(LOF(1), 1)


LoadFile 方法示例

本例显示一对话框用来选择一个 .RTF 文件，再把它加载到 RichTextBox 控件中。要试用此例，在窗体上应建立一个 RichTextBox 控件，一个 CommandButton 控件和一个 CommonDialog 控件。把下列代码粘贴到窗体的通用声明部分中。然后运行此例。

Private Sub Command1_Click()

CommonDialog1.Filter = "Rich Text Format files|*.rtf"

CommonDialog1.ShowOpen

RichTextBox1.LoadFile CommonDialog1.Filename, rtfRTF

End Sub


BulletIndent 属性

当 SelBullet 设置为 True 时，返回或设置在 RichTextBox 控件中所用的缩进量。

语法

object.BulletIndent [= integer]

BulletIndent 属性语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
integer	整数，决定缩进量。这些属性都使用包含 RichTextBox 控件的 Form 对象的刻度模式单位。
说明

如果其选定跨越了具有不同页边距设置值的多个段落时，BulletIndent 属性将返回 Null。


SaveFile 方法

把 RichTextBox 控件的内容存入文件。不支持命名的参数。

语法

object.SaveFile(pathname, filetype)

SaveFile 方法的语法包含下面部分：

部分	描述
object	必需的。对象表达式，其值是“应用于”列表中的一个对象。
pathname	必需的。字符串表达式，它定义保存控件内容文件的路径和文件名。
filetype	可选的。整数或常数，按照“设置值”中的描述确定加载文件的类型。
设置值

filetype 的设置值是：

常数	值	描述
rtfRTF	0	（缺省）RTF。RichTextBox 控件把它的内容存为一个 .RTF 文件。
rtfText	1	文本。RichTextBox 控件把它的内容存为一个文本文件。
说明

也可用 Visual Basic 的 Write 函数和 RichTextBox 控件的 TextRTF 属性和 SelRTF 属性写 .RTF 文件。例如，可按如下方式把 RichTextBox 控件中突出显示的内容存为 .RTF 文件。

Open "mytext.rtf" For Output As 1

Print #1, RichTextBox1.SelRTF


SaveFile 方法示例

该示例显示一个对话框用来选择一个 .RTF 文件以存入一个 RichTextBox 控件的内容。要试用此示例，在窗体中应建立一个 RichTextBox 控件，一个 CommandButton 控件和一个 CommonDialog 控件。把下列代码粘贴到 CommandButton 控件的 Click 事件上，然后运行此例。

Private Sub Command1_Click()

CommonDialog1.ShowSave

RichTextBox1.SaveFile(CommonDialog1.Filename, rtfRTF)

End Sub


SelAlignment 属性

返回或设置一个值，这个值控制 RichTextBox 控件中段落的对齐。该属性设计时无效。

语法

object.SelAlignment [= value]

Selignment 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
value	整数或常数，按照“设置值”的描述决定段落的对齐方式。
设置值

value 的设置值是：

常数	值	描述
	Null	无值。当前的选择跨越了几个具有不同对齐方式的段落。
rtfLeft	0	（缺省）左边。段落沿左边距对齐。
rtfRight	1	右边。段落沿右边距对齐。
rtfCenter	2	居中。段落居中对齐。
说明

对于当前所选择的含有文本的所有段落，或者对于不含选定文本但含有插入点的段落，SelAlignment 属性将决定它们的对齐方式。

运行中读此属性时，为了区分 Null 和 0 的值，应使用带有 If...Then...Else 语句的 IsNull 函数。例如：

If IsNull(RichTextBox1.SelAlignment) = True Then

'选择混合时运行的代码。

ElseIf RichTextBox1.SelAlignment = 0 Then

'选择左对齐时运行的代码。

...

End If


SelAlignment 属性示例

该示例使用 OptionButton 控件数组来改变 RichTextBox 控件中段落的对齐方式，但前提是该段落文本已被选定。数组中控件的索引对应于 SelAlignment 属性设置值。要试用此例，在窗体中应装载一个 RichTextBox 控件和三个 OptionButton 控件。 给这三个 OptionButton 控件命同一个名字并将它们的 Index 属性依次设置为 0，1 和 2，并将下列代码粘贴到 OptionButton 控件的 Click 事件中，然后运行此例。

Private Sub Option1_Click(Index As Integer)

If RichTextBox1.SelLength > 0 Then

RichTextBox1.SelAlignment = Index

End If

End Sub


SelBold、 SelItalic、 SelStrikethru、SelUnderline 属性

返回或设置 RichTextBox 控件中选定文本的字体样式。字体样式包括以下格式：粗体，斜体，删除线和下划线。这些属性设计时无效。

语法

object.SelBold [= value]

object.SelItalic [= value]

object.SelStrikethru [= value]

object.SelUnderline [= value]

SelBold、 SelItalic、 SelStrikethru 和 SelUnderline 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
value	布尔表达式或常数，按照“设置值”中的描述决定字体样式。
设置值

value 的设置值是：

设置值	描述
Null	无值。该选择或在插入点之后的字符含有多种适当字体样式的混合。
True	所选的所有字符或插入点之后的字符具有适当的字符样式。
False	（缺省）所选的所有字符或插入点之后的字符不具有适当的字符样式。
说明

这些属性的行为类似 Font 对象的 Bold、 Italic、 Strikethru 和 Underline 属性。RichTextBox 控件具有 Font 属性，因此，通过该控件的 Font 对象的属性，能够给该控件的所有文本添加各种字体样式。但是，为了给选定的文本或给插入点处输入的字符添加字符样式，应使用这些属性。

通常，要访问这些属性，可在应用程序中、用一些能分别切换这些属性的按钮、创建一个工具栏。

运行时读取这些属性时，为了区分 Null 和 False 的值，应使用带有 If...Then...Else 语句的 IsNull 函数。例如：

If IsNull(RichTextBox1.SelBold) = True Then

'选择混合时运行的代码。

ElseIf RichTextBox1.SelBold = False Then

'选择不是粗体时运行的代码。

...

End If


SelChange 事件

RichTextBox 控件中当前文本的选择发生改变或插入点发生变化时，此事件发生。

语法

Private Sub object_SelChange([index As Integer])

SelChange 事件的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
index	整数，它唯一地确定控件数组中的一个控件。
说明

使用 SelChange 事件可检查各种属性，它们能给出当前选择（如 SelBold ）的各种信息，根据这些信息就可以进行一些处理，例如，在工具栏中更新按钮。


SelChange 事件示例

该示例用来检查当前选择的范围大小，以确定对剪贴板的剪切或复制文本的菜单命令是否有效。要试用此例，需在窗体中装入一个 RichTextBox 控件和三个 Menu 控件，以建立一个带有剪切和复制命令的菜单。并将下列代码粘贴到 RichTextBox 控件的 SelChange 事件中，然后运行此例。

Private Sub RichTextBox1_SelChange()

If RichTextBox1.SelLength > 0 Then

EditCutMenu.Enabled = True

EditCopyMenu.Enabled = True

Else

EditCutMenu.Enabled = False

EditCopyMenu.Enabled = False

End If

End Sub


SelCharOffset 属性

返回或设置一个值，由它确定 RichTextBox 控件中的文本是出现在基线上（正常状态），还是作为上标出现在基线之上或作为下标出现在基线之下。此属性在设计时无效。

语法

object.SelCharOffset [= offset]

SelCharOffset 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
offset	整数，它按照“设置值”所描述的那样，指定当前选择的字符、或在插入点之后的字符偏离文本基线的距离。
设置值

offset 的设置值是：

设置值	描述
Null	无值。选择的字符含有不同偏移量。
0	（缺省）正常状态。这些字符都出现在正常文本的基线上。
Positive integer	上标。这些字符出现在基线之上，偏移量由指定的缇数决定。
Negative integer	下标。这些字符出现在基线之下，偏移量由指定的缇数决定。
说明

运行中读取此属性时，可在 If...Then...Else 语句中使用 IsNull 函数来区分 Null 和 0。

If IsNull(RichTextBox1.SelCharOffset) = True Then

'选择混合时运行的代码。

ElseIf RichTextBox1.SelCharOffset = 0 Then

'选择均在基线上时运行的代码。

...

End If


SelCharOffset 属性示例

该示例是使用滚动条使选定的文本在基线之上或之下进行移动。最大和最小偏移量由 RichTextBox 控件文本字体的大小来设置。要试用此例，需先在窗体中装入一个 RichTextBox 控件和一个 VScrollBar 控件。将下列代码粘贴到 VScrollBar 控件的 Change 事件中，然后运行此例。

Private Sub VScroll1_Change ()

VScroll1.Max = RichTextBox1.SelFontSize

VScroll1.Min = -(VScroll1.Max)

RichTextBox1.SelCharOffset = VScroll1.Value

End Sub


SelColor 属性

返回或设置用于决定 RichTextBox 控件中文本颜色的值。在设计时无效。

Syntax语法

object.SelColor [= color]

SelColor 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表的一个对象。
color	按照“设置值”中的描述，一个指定颜色的值。
设置值

color 的设置值是：

设置值	描述
Null	文本包含多种颜色设置值的混合。
RGB colors	在代码中用 RGB 或 QBColor 函数所指定的颜色。
System	通过对象浏览器中 Visual Basic 对象库中的系统颜色常数所指定的颜色。因此，文本的颜色要与在 Windows “控制面板”中对所指定常数的选择相匹配。
说明

如果 RichTextBox 控件中没有选定的文本，则设置此属性将确定在当前插入点所输入的所有新文本的颜色。


SelColor 属性示例

该示例显示一个 CommonDialog 控件的颜色对话框，用于指定 RichTextBox 控件中已选定文本的颜色。要试用此示例，先要在窗体中放置一个 RichTextBox 控件、一个 CommandButton 控件和一个 CommonDialog 控件。并把以下代码粘贴到 CommandButton 控件的 Click 事件中。然后运行此例。

Private Sub Command1_Click()

CommonDialog1.ShowColor

RichTextBox1.SelColor = CommonDialog1.Color

End Sub


SelFontName 属性

返回或设置在 RichTextBox 控件中用于显示当前选定的文本、或用于显示刚从插入点所输入字符的字体。在设计时无效。

语法

object.SelFontName [= string]

SelFontName 属性语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
string	字符串表达式，它标识系统中已安装的一种字体。
说明

如果所选定的文本包含有不同的字体，则 SelFontName 属性将返回 Null 值。


SelFontName 属性示例

该示例显示来自 CommonDialog 控件的一个字体对话框，用于指定 RichTextBox 控件中选定文本的字体属性。要试用此例，先要在窗体中放置一个 RichTextBox 控件、一个 CommandButton 控件和一个 CommonDialog 控件。并把以下代码粘贴到 CommandButton 控件的 Click 事件中。然后运行此例。

Private Sub Command1_Click ()

CommonDialog1.Flags = cdlCFBoth

CommonDialog1.ShowFont

With RichTextBox1

.SelFontName = CommonDialog1.FontName

.SelFontSize = CommonDialog1.FontSize

.SelBold = CommonDialog1.FontBold

.SelItalic = CommonDialog1.FontItalic

.SelStrikethru = CommonDialog1.FontStrikethru

.SelUnderline = CommonDialog1.FontUnderline

End With

End Sub


SelFontSize 属性

返回或设置一个指定字体大小的值，该字体用于显示 RichTextBox 控件中的文本。在设计时无效。

语法

object.SelFontSize [= points]

SelFontSize 属性语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
points	一个以点为单位的整数值，用于指定当前选定文本或刚从插入点所输入字符的字体大小。
说明

SelFontSize 的最大值是 2160 点。

通常，最好在设置大小和样式之前先改变 SelFontName 属性。然而，当设置 TrueType 字体小于 8 点时，先要把 SelFontSize 属性设为 3 点，接着，设置 SelFontName 属性，最后重新设置 SelFontSize 属性的大小。

注意   可用的字体依赖于系统配置、显示设备和打印设备，因此不同的系统都有所不同。

如果所选定的文本包含有不同的字体，则 SelFontSize 属性将返回 Null 值。


SelFontSize 属性示例

该示例显示来自 CommonDialog 控件的一个字体对话框，用于指定 RichTextBox 控件中选定文本的字体属性。要试用此例，先要在窗体中放置一个 RichTextBox 控件、一个 CommandButton 控件和一个 CommonDialog 控件。并把以下代码粘贴到 CommandButton 控件的 Click 事件中。然后运行此例。

Private Sub Command1_Click ()

CommonDialog1.Flags = Both

CommonDialog1.ShowFont

With RichTextBox1

.SelFontName = CommonDialog1.FontName

.SelFontSize = CommonDialog1.FontSize

.SelBold = CommonDialog1.FontBold

.SelItalic = CommonDialog1.FontItalic

.SelStrikethru = CommonDialog1.FontStrikethru

.SelUnderline = CommonDialog1.FontUnderline

End With

End Sub


SelBullet 属性

返回或设置一个值，该值决定在 RichTextBox 控件中包含当前选择或插入点的段落是否有项目符号样式。在设计时无效。

语法

object.SelBullet [= value]

SelBullet 属性语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
Value	整数或常数，决定一个或多个段落项目符号的样式，决定方式，如“设置值”中的描述。
设置值

value 的设置值是：

设置值	描述
Null	无值。选择跨越一个以上的段落，且包含了有项目符号样式和无项目符号样式的混合。
True	选择的段落有项目符号样式。
False	（缺省）选择的段落没有项目符号样式。
说明

为了在 RichTextBox 控件中构造一个带有项目符号的项目列表，应使用 SelBullet 属性。

运行时读取此属性时，为了区分 Null 值和 False 值，应将 IsNull 函数和 If...Then...Else 语句一起使用。例如：

If IsNull(RichTextBox1.SelBullet) = True Then

'当选择是混合时要运行的代码。

ElseIf RichTextBox1.SelBullet = False Then

'当选择没有包括项目符号样式时要运行的代码。

...

End If


SelBullet 属性示例

该示例改变窗体上 CheckBox 控件的状态，以便显示 RichTextBox 控件中所选文本的项目符号状态。要试用此例，应将一个 RichTextBox 控件和一个 CheckBox 控件放在窗体上。并将以下代码粘贴到 RichTextBox 控件的 SelChange 事件里。然后运行此例。

Private Sub RichTextBox1_SelChange()

If IsNull(RichTextBox1.SelBullet) = True Then

Check1.Value = vbGrayed

ElseIf RichTextBox1.SelBullet = True Then

Check1.Value = vbChecked

ElseIf RichTextBox1.SelBullet = False Then

Check1.Value = vbUnchecked

End If

End Sub


SelPrint 方法

将 RichTextBox 控件中格式化文本发送给设备进行打印。

语法

object.SelPrint(hdc)

SelPrint 方法的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
hdc	设备描述体，是准备用来打印控件内容的设备。
说明

如果在 RichTextBox 控件中有选定的文本，则 SelPrint 方法仅将选定的文本发送给目标设备。如果没有选定的文本，则 RichTextBox 的全部内容都将发送给目标设备。

SelPrint 方法并不打印 RichTextBox 控件中的文本。而是将格式化文本的一个备份发送给可以打印这个文本的设备。例如，用下列代码可将文本发送给 Printer 对象：

RichTextBox1.SelPrint(Printer.hDC)

应当知道 Printer 对象的 hDC 属性是用来为 SelPrint 方法指定 设备描述体参数的。

注意   如果使用 Printer 对象作为来自 RichTextBox 控件文本的接收端， 必须首先通过打印零长度字符串之类的一些东西，对 Printer 对象的设备描述体进行初始化。


SelPrint 方法示例

该示例是打印 RichTextBox 控件的格式化文本。要试用此例，应将一个 RichTextBox 控件，一个 CommonDialog 控件，和一个 CommandButton 控件放在窗体上。再将以下代码粘贴到 CommandButton 控件的 Click 事件中。然后运行此例。

Private Sub Command1_Click()

CommonDialog1.Flags = cdlPDReturnDC + cdlPDNoPageNums

If RichTextBox1.SelLength = 0 Then

CommonDialog1.Flags = CommonDialog1.Flags + cdlPDAllPages

Else

CommonDialog1.Flags = CommonDialog1.Flags + cdlPDSelection

End If

CommonDialog1.ShowPrinter

RichTextBox1.SelPrint CommonDialog1.hDC

End Sub


SelTabCount、 SelTabs 属性

返回或设置 RichTextBox 控件中文本的制表符数目以及制表符的绝对位置。设计时无效。

语法

object.SelTabCount [= count]

object.SelTabs(index) [= location]

SelTabCount 和 SelTabs 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是 “应用于”列表中的一个对象。
count	整数，它决定在选定的段落或插入点以下的段落中制表位的数目。
index	整数，它标识一个指定的制表符。第一个制表位索引为零 (0)，最后一个制表位索引值为 SelTabCount 减 1。
location	整数，它用来指定所到之处分配的制表符的位置。表示制表符位置的单位由 Form 对象或包含 RichTextBox 控件的其它对象的刻度模式来决定。
说明

按照缺省规定，当在 RichTextBox 控件中键入时，按 TAB 键会使焦点按照 TabIndex 属性所指定的 tab 键顺序移向下一个控件。在文本中插入一个制表符的方法是按 CTRL+TAB 键。但是，习惯于使用字处理器的用户会感到使用 CTRL+TAB 组合键与他们的经验恰好相反。也能使用 TAB 键在 RichTextBox 控件插入制表符，只需在 RichTextBox 控件取得焦点时，将 Form 对象中所有控件的 TabStop 属性，暂时切换为 False 即可。例如：

Private Sub RichTextBox1_GotFocus()

'忽略没有 TabStop 属性的控件错误。

On Error Resume Next

'关闭按下 TAB 键时焦点的改变。

For Each Control In Controls

Control.TabStop = False

Next Control

End Sub

当 RichTextBox 控件失去焦点时，要确保恢复其它控件的 TabStop 属性。


SelTabCount、 SelTabs 属性示例

该示例设置 RichTextBox 控件中制表符总数为 5，并把制表符位置设置为 5 的倍数。要试用此例，应在窗体中建立一个 RichTextBox 控件和一个 CommandButton 控件，并把下列代码粘贴到 CommandButton 控件的 Click 事件中。然后运行此例。

Private Sub Command1_Click()

With RichTextBox1

.SelTabCount = 5

For X = 0 To .SelTabCount - 1

.SelTabs(X) = 5 * X

Next X

End With

End Sub


SelRTF 属性

返回或设置 RichTextBox 控件当前选择的文本（按 .RTF 格式）。设计时无效。

语法

object.SelRTF [= string]

SelRTF 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
string	.RTF 格式的字符串表达式。
说明

设置 SelRTF 属性可用新字符串替换 RichTextBox 控件中任何已选定文本。如果控件中未选定文本，则此属性返回一个零长度字符串 ("")。

为了写 .RTF 文件，可以将 SelRTF 属性与 Print 函数一起使用。


SelRTF 属性示例

该示例把 RichTextBox 控件的突出显示内容存入一个 .RTF 文件中。要试用此例，应在窗体中建立一个 RichTextBox 控件和一个 CommandButton 控件，再把下列代码粘贴到 CommandButton 控件的 Click 事件中。然后运行此例。

Private Sub Command1_Click ()

Open "mytext.rtf" For Output As 1

Print #1, RichTextBox1.SelRTF

Close 1

End Sub


Span 方法

基于指定字符集在 RichTextBox 控件中选择文本。不支持命名的参数。

语法

object.Span characterset, forward, negate

Span 方法的语法包含下面部分：

部分	描述
object	必需的。对象表达式，其值是“应用于”列表中的一个对象。
characterset	必需的。字符串表达式，它基于 negate 的值、指定扩展选定时要查找字符的集合。
forward	可选的。布尔表达式，它按“设置值”中的描述，决定插入点移动方向。
negate	可选的。布尔表达式，它按“设置值”中的描述，决定 characterset 中的字符是目标字符的定义集合或是目标字符之外的定义集合。
设置值

forward 的设置值是：

设置值	描述
True	（缺省值）从当前插入点或当前选择的起始点正向，到文本的结束点，选择文本。
False	从当前插入点或当前选择的起始点反向，到文本的起始点，选择文本。
negate 的设置值是：

设置值	描述
True	包括在选择中的字符，都是不出现在 characterset 参数中的字符。该选择停止在找到了第一个在 characterset 参数中出现的字符处。
False	（缺省）包括在选择中的字符，都是出现在 characterset 参数中的字符。该选择停止在找到了第一个不在 characterset 参数中出现的字符处。
说明

Span 方法主要用于在 RichTextBox 控件中能容易地选择出一个词或句子。

如果 Span 方法基于参数值找不到指定的字符时，则当前插入点或选择将保持不变。

Span 方法不返回任何数据。


Span 方法示例

该示例定义了一对键盘快捷方式键，用来在 RichTextBox 控件中选择直至句的结束 (CTRL+S) 或直至词的结束 (CTRL+W) 处的文本。要试用此例，应在窗体中建立一 RichTextBox 控件。并把以下代码粘贴到 RichTextBox 控件的 KeyUp 事件中。然后运行此例。

Private Sub RichTextBox1_KeyUp (KeyCode As Integer, Shift As Integer)

If Shift = vbCtrlMask Then

Select Case KeyCode

'如果是 Ctrl+S 键:

Case vbKeyS

'选择直至句的结束处。

RichTextBox1.Span ".?!:", True, True

'扩展选择使其包括标点符号。

RichTextBox1.SelLength = RichTextBox1.SelLength + 1

'如果是 Ctrl+W 键:

Case vbKeyW

'选择直至词的结束处。

RichTextBox1.Span " ,;:.?!", True, True

End Select

End If

End Sub


TextRTF 属性

返回或设置 RichTextBox 控件的文本，包括所有的 .RTF 代码。

语法

object.TextRTF [= string]

TextRTF 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
string	.RTF 格式的字符串表达式。
说明

设置 TextRTF 属性，将要用新的字符串来取代 RichTextBox 控件中的全部内容。

为了写入 .RTF 文件，可将 TextRTF 属性和 Print 函数一起使用。任何能读取 RTF 编码文本的字处理器，都可以读取该结果文件。


TextRTF 属性示例

该示例是把 RichTextBox 控件的全部内容存入一个 .RTF 文件。要试用此例，应在窗体中建立一个 RichTextBox 控件和一个 CommandButton 控件。并把以下代码粘贴入 CommandButton 控件的 Click 事件中。然后运行此例。

Private Sub Command1_Click ()

Open "mytext.rtf" For Output As 1

Print #1, RichTextBox1.TextRTF

Close 1

End Sub


Upto 方法

把插入点前移到（但不包括）第一个字符处，该字符是 RichTextBox 控件中指定字符集的成员。该方法不支持已命名的参数。

语法

object.Upto(characterset, forward, negate)

Upto 方法的语法包含下面部分：

部分	描述
object	必需的。对象表达式，其值是“应用于”列表中的一个对象。
characterset	必需的。字符串表达式，它是基于 negate 的值在移动插入点时要寻找的指定字符集合。
forward	任选项。布尔表达式，按照“设置值”中的描述，决定插入点移动的方向。
negate	可选的。布尔表达式，它按“设置值”中的描述，决定 characterset 中的字符是目标字符的定义集合或是目标字符之外的定义集合。
设置值

forward 的设置值是：

设置值	描述
True	（缺省）将插入点朝着文本的末端向前移动。
False	将插入点朝着文本的始端向后移动。
negate 的设置值是：

设置值	描述
True	用 characterset 参数中没有指定的字符来移动插入点。
False	（缺省）用 characterset 参数中指定的字符来移动插入点。


Upto 方法示例

该示例定义了一对快捷方式键，用来将 RichTextBox 控件里的插入点移到一个句子的结尾 (ALT+S) 或一个单词的结尾 (ALT+W)。要试用此例，应在窗体中加载一个 RichTextBox 控件，并将下列代码粘贴到 RichTextBox 控件的 KeyUp 事件中。然后运行此例。

Private Sub RichTextBox1_KeyUp (KeyCode As Integer, Shift As Integer)

If Shift = vbAltMask Then

Select Case KeyCode

'如果是 Alt+S 键:

Case vbKeyS

'将插入点移动到句尾。

RichTextBox1.Upto ".?!:", True, False

'如果是 Alt+W 键:

Case vbkeyW

'将插入点移动到词尾。

RichTextBox1.Upto " .?!:", True, False

End Select

End If

End Sub


RichTextBox 控件常数

外观属性

常数	值	描述
rtfFlat	0	平面的。绘图无明显视觉效果。
rtfThreeD	1	（缺省）三维绘图。具有三维视觉效果。
Find 方法

常数	值	描述
rtfWholeWord	2	决定是按整个字匹配还是按字的一部分匹配。
rtfMatchCase	4	决定匹配是否基于指定字符串和字符串的文本的字体。
rtfNoHighlight	8	决定匹配是否要在 RichTextBo 控件中突出显示。
Loadfile、 Savefile 方法

常数	值	描述
rtfRTF	0	（缺省）RTF。加载的文件必须是一个有效的 .RTF 文件（LoadFile 方法）或将控件中的内容存入一个 .RTF 文件中（SaveFile 方法）。
rtfText	1	文本。RichTextBox 控件可装入任何文本文件（LoadFile 方法），也可将控件中内容存入一个文本文件中（SaveFile 方法）。
Mousepointer 属性

常数	值	描述
rtfDefault	0	（缺省）形状由对象决定。
rtfArrow	1	箭头。
rtfCross	2	十字线（十字线光标）。
rtfIbeam	3	一闪动光束。
rtfIcon	4	图标（方框中的小方块）。
rtfSize	5	尺寸（指向东南西北的四向箭头，）。
rtfSizeNESW	6	NE SW 尺寸（双向箭头，指向东北和西南方向）。
rtfSizeNS	7	N S 尺寸（双向箭头，指向南和北）。
rtfSizeNWSE	8	NW、 SE 尺寸。
rtfSizeEW	9	E W 尺寸（双向箭头，指向东和西）。
rtfUpArrow	10	向上箭头。
rtfHourglass	11	沙漏（等待）。
rtfNoDrop	12	没有放下。
rtfArrowHourglass	13	箭头和沙漏（仅在 32 位 Visual Basic 4.0 版本中有效）
rtfArrowQuestion	14	箭头和问号。（仅在 32 位 Visual Basic 4.0 的版本上才有效。）
rtfSizeAll	15	具备所有尺寸。（只有在 32 位 Visual Basic 4.0 的版本上才有效。）
rtfCustom	99	用 MouseIcon 属性所指定的自定义图标。
Selalignment 属性

常数	值	描述
rtfLeft	0	（缺省）左边。段落沿左边距对齐。
rtfRight	1	右边。段落沿右边距对齐。
rtfCenter	2	居中。段落居中对齐。
Scrollbars 属性

常数	值	描述
rtfNone	0	（缺省）空。
rtfHorizontal	1	仅有水平滚动条。
rtfVertical	2	仅有垂直滚动条。
rtfBoth	3	同时具有水平滚动条和垂直滚动条。


所支持的 RTF 代码

RichTextBox 控件可识别下列 RTF（丰富正文格式）代码。其它所有的 RTF 代码在加载文本时都被控件忽略。

RTF 代码	描述	RTF 代码	描述
-	OptionalHyphen	objcropl	CropLeft
\n	EndParagraph	objcropr	CropRight
\r	EndParagraph	objcropt	CropTop
_	NonBreakingHyphen	objdata	ObjectData
|	FormulaCharacter	object	Object
~	NonBreakingSpace	objemb	ObjectEmbedded
ansi	CharSetAnsi	objh	Height
b	Bold	objicemb	ObjectMacICEmbedder
bin	BinaryData	objlink	ObjectLink
blue	ColorBlue	objname	ObjectName
bullet	ANSI Character 149	objpub	ObjectMacPublisher
cb	ColorBackground	objscalex	ScaleX
cell	Cell	objscaley	ScaleY
cf	ColorForeground	objsetsize	ObjectSetSize
colortbl	ColorTable	objsub	ObjectMacSubscriber
cpg	CodePage	objw	Width
deff	DefaultFont	par	EndParagraph
deflang	DefaultLanguage	pard	ParagraphDefault
deftab	DefaultTabWidth	pc	CharSetPc
deleted	Deleted	pca	CharSetPs2
dibitmap	PictureWindowsDIB	piccropb	CropBottom
dn	Down	piccropl	CropLeft
dy	TimeDay	piccropr	CropRight
emdash	ANSI Character 151	piccropt	CropTop
endash	ANSI Character 150	pich	Height
f	FontSelect	pichgoal	DesiredHeight
fbidi	FontFamilyBidi	picscalex	ScaleX
fchars	FollowingPunct	picscaley	ScaleY
fcharset	CharSet	pict	Picture
fdecor	FontFamilyDecorative	picw	Width
fi	IndentFirst	picwgoal	DesiredWidth
field	Field	plain	CharacterDefault
fldinst	FieldInstruction	pmmetafile	PictureOS2Metafile
fldrslt	FieldResult	pn	ParaNum
fmodern	FontFamilyModern	pnindent	ParaNumIndent
fname	RealFontName	pnlvlblt	ParaNumBullet
fnil	FontFamilyDefault	pntext	ParaNumText
fontemb	FontEmbedded	pntxta	ParaNumAfter
fontfile	FontFile	pntxtb	ParaNumBefore
fonttbl	FontTable	protect	Protect
footer	NullDestination (Footer)	qc	AlignCenter
footerf	NullDestination (Footer, first)	ql	AlignLeft
footerl	NullDestination (Footer, left)	qr	AlignRight
footerr	NullDestination (Footer, right)	rdblquote	ANSI Character 34
footnote	NullDestination (footnote)	red	ColorRed
fprq	Pitch	result	ObjectResult
froman	FontFamilyRoman	revauth	RevAuthor
fs	FontSize	revised	Revision
fscript	FontFamilyScript	ri	IndentRight
fswiss	FontFamilySwiss	row	Row
ftech	FontFamilyTechnical	rquote	ANSI Character 39
ftncn	NullDestination (Footnote cont.)	rtf	Rtf
ftnsep	NullDestination (Footnote separ)	rtlch	RightToLeftChars
ftnsepc	NullDestination (Footnote cont. separ)	rtldoc	RightToLeftDocument
green	ColorGreen	rtlmark	DisplayRightToLeft
header	NullDestination (Header)	rtlpar	RightToLeftParagraph
headerf	NullDestination (Header, first)	sec	TimeSecond
headerl	NullDestination (Header, left)	sect	EndSection
headerr	NullDestination (Header, right)	sectd	SectionDefault
horzdoc	HorizontalRender	strike	StrikeOut
hr	TimeHour	stylesheet	StyleSheet
i	Italic	sub	Subscript
info	DocumentArea (Info fields)	super	Superscript
intbl	InTable	tb	TabPosition
lang	Language	tc	NullDestination (Table of contents)
lchars	LeadingPunct	tx	TabPosition
ldblquote	ANSI Character 34	ul	Underline
li	IndentLeft	uld	UnderlineDotted
line	SoftBreak	uldash	UnderlineDash
lquote	ANSI Character 39	uldashd	UnderlineDashDotted
ltrch	LeftToRightChars	uldashdd	UnderlineDashDotDotted
ltrdoc	LeftToRightDocument	uldb	UnderlineDouble
ltrmark	DisplayLeftToRight	ulhair	UnderlineHairline
ltrpar	LeftToRightParagraph	ulnone	StopUnderline
mac	CharSetMacintosh	ulth	UnderlineThick
macpict	PictureQuickDraw	ulw	UnderlineWord
margl	MarginLeft	ulwave	UnderlineWave
marglsxn	SectionMarginLeft	up	Up向上
margr	MarginRight	v	HiddenText
margrsxn	SectionMarginRight	vertdoc	VerticalRender
min	TimeMinute	wbitmap	PictureWindowsBitmap
mo	TimeMonth	wbmbitspixel	BitmapBitsPerPixel
nocwrap	NoWordBreak	wbmplanes	BitmapNumPlanes
nooverflow	NoOverflow	wbmwidthbytes	BitmapWidthBytes
nosupersub	NoSuperSub	wmetafile	PictureWindowsMetafile
nowwrap	NoWordWrap	xe	NullDestination (index entry)
objautlink	ObjectAutoLink	yr	TimeYear
objclass	ObjectClass	zwj	ZeroWidthJoiner
objcropb	CropBottom	zwnj	ZeroWidthNonJoiner


Locked 属性（RichTextBox 控件）

返回或设置一个值，该值指出 RichTextBox 控件中的内容是否能被编辑。

语法

object.Locked [= boolean]

Locked 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是一个 RichTextBox 控件。
boolean	布尔表达式，按“设置值”所指定的那样，指出控件的内容是否能被编辑。
设置值

boolean 的设置值是：

设置值	描述
True	可以滚动或突出显示控件中的文本，但不能对它进行编辑。程序中仍可通过改变 Text 属性来修改文本。
False	（缺省）可以编辑控件中的文本。


RightMargin 属性

返回或设置 RichTextBox 控件中的文本右边距。

语法

object.RightMargin [ = value]

RightMargin 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是一个 RichTextBox 控件。
value	数值表达式，按下面所描述的，以缇为单位来指定从文本右边缘到控件右边缘的缩进。
说明

RightMargin 属性为文本的自动换行，居中，和缩进设置右极限。段落居中是基于 RichTextBox 控件的文本部分（不包括边框）的最左边和 RightMargin 属性。另外，设置 SelRightIndent 属性时，要基于 RightMargin 属性的当前设置。

RightMargin 属性的缺省值是 0，这样会使控件在 RichTextBox 控件的最右边设置文本自动换行，使所有文本都可显示出来。

注意   计算 RightMargin 属性值时，如果 RichTextBox 控件的 BorderStyle 设置为 rtfFixedSingle，则要把此控件的边框宽度计算在内。


AutoVerbMenu 属性（RichTextBox 控件）

返回或设置一个值，此值决定当用鼠标右键单击 OLE 对象时，是否显示一个包含所选择对象动词的弹出菜单。

语法

object.AutoVerbMenu [ = value ]

AutoVerbMenu 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是一个 RichTextBox 控件。
value	布尔表达式，按照“设置值”所描述的，它指定是否显示一个菜单。
设置值

value 的设置值是：

设置值	描述
True	在对象上单击鼠标右键，将显示一个弹出菜单。
False	不显示弹出菜单。
说明

当此属性设置为 True 时，用鼠标右键单击对象，RichTextBox 控件不发生 Click 事件和 MouseDown 事件。控件的任何其它区域将产生正确的事件。


SelProtected 属性

返回或设置一个值，决定是否保护当前选择。设计时无效。

语法

object.SelProtected [ = value ]

SelProtected 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是一个 RichTextBox 控件。
value	变体值，按照“设置值”所描述的，决定是否保护当前选择。
设置值

设置值	描述
Null	当前选定包含了被保护的和非被保护的字符。
True	选定的所有字符都被保护。
False	选定的字符都不被保护。
说明

保护文本看起来和普通文本一样，但是最终用户不能修改。也就是说，运行时不能更改。于是，既能用 RichTextbox 控件创建窗体，又能有不允许最终用户修改的区域。


OLEObject 对象

OLEObject 对象代表 RichTextBox 控件中一个可插入的对象。

说明

RichTextBox 控件允许将可插入对象添加到 RTF 文件中。可插入对象由 OLEObject 对象代表。

在 RichTextbox 控件中的每个嵌入的 OLEObject 对象计为一个字符。就是说，从控件开头起计数，OLEObject 对象仅占一个字符位。OLE 对象可被突出显示，剪切或复制，但不支持任何 Selxxx 属性（即，SelBold、 SelItalic 等等）。

每个对象都支持包含“打开”和“编辑”以及标准的“剪切”，“复制”，“粘贴”和“删除”命令的一个上下文菜单。“打开”可在其自己的窗口中打开对象的应用程序，以便编辑此对象。如果对象支持现场激活，则可用“编辑”使该对象现场激活。

运行时可使用 Add 方法，或是将一个对象从 Windows “资源管理器”中拖动到 RichTextBox 控件中，可以人工地向 OLEObjects 集合添加 OLEObject 对象。


OLEObjects 集合

OLEObjects 集合包含一组 OLEObject 对象。

语法

object.OLEObjects(index)

object.OLEObjects.Item(index)

OLEObjects 集合的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
index	无论是 Index 属性或 Key 属性的值，都唯一地标识 OLEObject 对象。
说明

建立在 RichTextBox 控件中的每个嵌入 OLE 对象，都被表示在 OLEObjects 集合中。运行时可以用 Add 方法向 OLEObjects 集合人工添加对象，或把一个对象从 Windows 资源管理器拖到 RichTextBox 控件中。

OLEObjects 集合是一个标准集合，支持 Count 属性，也支持 Add、 Item 和 Remove 方法。


Add 方法（OLEObjects 集合）

把 OLEObject 对象添加到 OLEObject 集合。不支持命名的参数。

语法

object.Add index, key, sourcedoc, class

Add 方法的语法包含下面部分：

部分	描述
object	必需的。对象表达式，其值是“应用于”列表中的一个对象。
index	可选的。整数，它标识对象集合中的一个成员。如已提供，新成员将被插入在索引所指定的成员之后。
key	可选的。一个唯一的字符串表达式，它可用于访问集合中的成员。key 参数和 index 参数可与集合的 Item 方法一起交互地使用，以便对 OLEObject 对象进行检索。
sourcedoc	必需的。作为内嵌对象模板文档使用的文件名。RichTextBox 控件不支持链接，所以该文件的内容将被复制进 OLEObject 对象。如果不指定源文档，则必须使用一个零长度字符串 ("")。
class	可选的。是内嵌对象的 OLE 类名。这个参数被系统注册表中的 OLE 用作 ProgID。如果已指定 sourcedoc 的文件名，这个参数将被忽略。
说明

以下代码是把一个 Microsoft Excel 工作单添加到 RichTextBox 中，并把 Key 属性设置为“SalesData”：

RichTextBox1.OLEObjects.Add , "SalesData", , "Excel.Sheet.5"

当对象添加到集合中时，它即变成现场激活，因此可以给它添加数据。


Add 方法（OLEObjects 集合）示例

该示例提供一个对话窗，从中可找出添加到 RichTextBox 控件的一个 OLEObject 对象（位图）。要试用此例，应在窗体上建立一个 CommonDialog 控件和一个 RichTextBox 控件，再把以下代码粘贴到声明部分中。运行此例并双击控件。

Private Sub RichTextBox1_DblClick()

With CommonDialog1

.Filter = ("bitmap (*.bmp)|*.bmp")

.ShowOpen

End With

RichTextBox1.OLEObjects. _

Add , , CommonDialog1.filename

End Sub


Class 属性（OLEObject 对象）

返回内嵌对象的类名。

语法

object.Class

object 参数是一个对象表达式，其值是“应用于”列表中的一个对象。

说明

类名定义一个对象的类型。支持 OLE 或自动化的应用程序，将用以下两种语法中的任一种充分限定其对象的类名：

application.objecttype.version

objecttype.version

 用于 OLE 类名的语法包含下面部分：

部分	描述
application	提供对象的应用程序名。
objecttype	在对象库中定义的对象名。
version	对象或提供对象的应用程序的版本号。
例如，Microsoft Excel version 5.0 支持许多对象，包括工作单和图表。它们的类名是 Excel.Sheet.5 和 Excel.Chart.5。Microsoft WordArt version 2.0 支持类名为 MSWordArt.2 的单一对象。

注意   某些 OLE 程序设计文档把编排方式的 ID (ProgID) 作为类名语法引用。

使用 OLEObjects 集合的 Add 方法创建一个对象时，将自动设置该 OLEObject 对象的 Class 属性。


DisplayType 属性（OLEObject 对象）

返回或设置一个值，它指出对象显示的是内容还是一个图标。

语法

object.DisplayType [ = value]

DisplayType 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
value	整数或常数，按照“设置值”中的描述，它指出对象显示的是它的内容还是一个图标。
设置值

value 的设置值是：

常数	值	描述
rtfDisplayContent	0	内容。当 RichTextBox 控件包含一个对象时，显示该对象的数据。
rtfDisplayIcon	1	图标。当 RichTextBox 控件包含一个对象时，在此控件中显示该对象的图标。
说明

在对象添加到 OLEObjects 集合中后，应使用 DisplayType 属性改变对象如何显示的方式。


ObjectVerbs 属性（OLEObject 对象）

返回对象支持的动词表。

语法

object.ObjectVerbs(value)

ObjectVerbs 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
value	数值表达式，它指出数组中的元素。
说明

ObjectVerbs 是一个基数为零的字符串数组。这个属性和 ObjectVerbsCount 属性一起使用，可取得对象所支持的动词。当对象被 DoVerb 方法激活时，这些动词决定要执行的操作。数组中的动词表是随对象不同和当前条件不同而变化的。

每个对象都支持它自己的动词集合。下列数值代表所有对象都支持的一些标准动词：

常数	值	描述
vbOLEPrimary	0	对象的缺省操作。
vbOLEShow	-1	激活对象进行编辑。如果创建对象的应用程序支持现场激活，则对象在 RichTextBox 控件中被激活。
vbOLEOpen	-2	在单独的应用程序窗口中打开对象。如果创建对象的应用程序支持现场激活，则对象在自己的窗口中被激活。
vbOLEHide	-3	对于嵌入的对象，隐藏创建对象的应用程序。
vbOLEUIActivate	-4	如果对象支持现场激活，现场激活对象并显示任一用户的接口工具。如果对象不支持现场激活，则不能激活对象，有错误出现。
vbOLEInPlaceActivate	-5	如果用户把焦点移到内嵌对象，则为该对象创建一个窗口，并准备要编辑的对象。如果对象不支持单击鼠标激活，则有错误出现。
vbOLEDiscardUndoState	-6	当对象被激活进行编辑时，用来放弃该对象的应用程序能撤消的、有变化的所有记录。
注意   ObjectVerbs 属性数组中这些动词可能没有列出。

ObjectVerbs 数组中的第一个动词 ObjectVerbs(0)，是缺省动词。除非另有指定，此动词用来激活对象。

数组中的其他动词可显示在菜单中。如果缺省动词在菜单中显示出来是恰当的，则此缺省动词在 ObjectVerbs 数组中应有两个输入项。

显示对象的应用程序通常在“编辑”菜单中应包含一个“对象”命令。当用户选定“编辑”“对象”时，应有一个菜单显示该对象的动词。为了在运行时创建这样一个菜单，应使用 ObjectVerbs，ObjectVerbsCoun 和 ObjectVerbFlags 属性。

为了当鼠标右键单击对象时，在弹出菜单中能自动显示 ObjectVerbs 数组中的动词，应把 AutoVerbMenu 属性设置为 True。


ObjectVerbsCount 属性（OLEObject 对象）

返回一个对象所支持动词的数目。

语法

object.ObjectVerbsCount

object 是一个对象表达式，其值是“应用于”列表中一个对象。

说明

用这个属性来决定 ObjectVerbs 属性数组中的元素数目。

对象支持的动词列表可能变化，其变化由该对象的状态决定。


ObjectVerbFlags 属性（OLEObject 对象）

返回 ObjectVerbs 数组中每个动词的菜单状态。

语法

object.ObjectVerbFlags(value)

ObjectVerbFlags 属性的语法包含下面部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的一个对象。
value	数值表达式，它指明数组中的元素。
返回值

ObjectVerbFlags 属性的返回值如下：

常数	值	描述
vbOLEFlagChecked	&H0008	菜单项已选定。
vbOLEFlagDisabled	&H0002	菜单项无效（但不暗淡）。
vbOLEFlagEnabled	&H0000	菜单项有效。
vbOLEFlagGrayed	&H0001	菜单项暗淡。
vbOLEFlagSeparator	&H0800	菜单项是一个分隔符条。
注意   这些常数列在对象浏览器的 Visual Basic (VB) 对象库中。

说明

ObjectVerbs 数组中的第一个动词是缺省的动词。该数组中其余动词都能在菜单中显示。ObjectVerbFlags 数组包含有 ObjectVerbs 数组中每个动词的菜单状态信息（如暗淡，选定等）。

当包含有对象动词的菜单显示时，为了查看该菜单项是如何显示的，应复选此属性值。


DoVerb 方法（OLEObject 对象）

打开一个对象进行操作（如编辑）。它不支持命名的参数。

语法

object.DoVerb (verb）

DoVerb 方法的语法包含下面部分：

部分	描述
object	对象表达式，其值是于“应用于”列表中的一个对象。
verb	任选项。是执行 RichTextBox 控件中 OLEObject 对象的动词。如没有指定，则执行缺省动词。该参数值可以是一个所有对象都支持的标准动词，或者是 ObjectVerbs 属性数组的一个又一个索引。
说明

DoVerb 方法执行指定的 OLEObject 对象的动词。该动词参数是 ObjectVerbs 属性数组中所列某个动词的索引，或者是下列标准动词之一。

每个对象都支持它自己的动词集合。下列数值代表所有对象都应支持的标准动词：

常数	值	描述
vbOLEPrimary	0	该对象的缺省动作。
vbOLEShow	-1	激活对象进行编辑。如果创建该对象的应用程序支持现场激活，则该对象在 RichTextBox 控件中被激活。
vbOLEOpen	-2	在一个独立应用程序的窗口中打开该对象。如果创建该对象的应用程序支持现场激活，则该对象在它自己的窗口中被激活。
vbOLEHide	-3	用于内嵌对象，隐藏创建该对象的应用程序。
vbOLEUIActivate	-4	如果该对象支持现场激活，则使其现场激活并显示出任意一些用户界面工具。如果该对象不支持现场激活，则激活，则该对象不能激活，并产生一个错误。
vbOLEInPlaceActivate	-5	如果用户将焦点移到内嵌对象上，将会为该对象创建一个窗口，并准备对象的编辑。如果该对象不支持单激鼠标激活，将会产生一个错误。
vbOLEDiscardUndoState	-6	当被激活的对象是为了进行编辑时，它用来放弃该对象的应用程序允许撤消的有变化的所有记录。
注意   这些动词在 ObjectVerbs 属性数组中可能没有列入。


MaxLength 属性（RichTextBox 控件）

返回或设置一个值，由它指定 RichTextBox 控件有无容纳字符数量的最大极限，若有，则指出最大字符数量。

语法

object.MaxLength [= long]

MaxLength 属性的语法包括下列部分：

部分	描述
object	对象表达式，其值是一个 RichTextBox 控件。
long	长型整数，由它指定用户可向控件输入字符的最大数量。MaxLength 属性的缺省值为 0，它表示最大值由该系统存储器条件来设定。只有大于零的数才能指定字符的最大数值。
说明

为了限定向 RichTextBox 输入字符的数量，应使用 MaxLength 属性。

如果正文字符个数超出 MaxLength 属性设置值所限定的 RichTextBox 中字符的个数，不产生错误；但只有最大值范围之内的字符才被 Text 属性接受，多余的字符将被剪裁掉。此时若修改属性，不会影响 RichTextBox 的当前内容，但是对随后内容的改变将会产生影响。


MultiLine 属性（RichTextBox 控件）

返回或设置一个值，它指明 RichTextBox 控件是否接受和显示多行正文。运行时此属性只读。

语法

object.MultiLine

object 所在处代表对象表达式，其值是一个 RichTextBox 控件。

设置值

MultiLine 属性的设置值包括：

设置值	描述
True	允许以多行形式输入正文。
False	（缺省）忽略回车换行并将数据限制为一行。
说明

当输入的正文超出文本框时，多行 RichTextBox 控件将使正文自动换行。

也可以添加滚动条，利用 ScrollBars 的属性来扩大 RichTextBox 控件的范围。

注意   在没有缺省按钮的窗体中，在多行 RichTextBox 控件中键入 ENTER 键，将使焦点移动到下一行。若缺省按钮存在，则需键入 CTRL + ENTER 键才能使焦点移动到下一行。


ScrollBars 属性（RichTextBox 控件）

返回或设置一个值，它指定 RichTextBox 控件是否带有水平的或垂直的滚动条。运行时此属性只读。

语法

object.ScrollBars

object 所在处代表对象表达式，其值是一个 RichTextBox 控件。

设置值

ScrollBars 属性的设置值包括：

常数	值	描述
rtfNone	0	（缺省）没有滚动条。
rtfHorizontal	1	仅有水平滚动条。
rtfVertical	2	仅有垂直滚动条。
rtfBoth	3	同时具有水平和垂直滚动条。
说明

对一个带有设置值为 1（水平滚动条），2（垂直滚动条），3（水平和垂直滚动条）的 RichTextBox 控件，必须设置 MultiLine 属性为 True。运行时，Microsoft Windows 操作环境自动提供一个标准键盘接口，允许在 RichTextBox 控件中使用方向键（UP 箭头键，DOWN 箭头键，LEFT 箭头键，RIGHT 箭头键），HOME 键和 END 键等进行定位。

只有当 RichTextBox 控件中的内容超出该控件的边界时，滚动条才会显示出来。如果 ScrollBars 被设置为 False，则不论内容是否超出，滚动条都不会显示出来。


Change 事件（占位符）


Click 事件（占位符）


DblClick 事件（占位符）


DragDrop 事件（占位符）


DragOver 事件（占位符）


KeyDown 事件（占位符）


KeyPress 事件（占位符）


KeyUp 事件（占位符）


MouseDown 事件（占位符）


MouseMove 事件（占位符）


MouseUp 事件（占位符）


OLECompleteDrag 事件（占位符）


OLEDragDrop 事件（占位符）


OLEDragOver 事件（占位符）


OLEGiveFeedback 事件（占位符）


OLESetData 事件（占位符）


OLEStartDrag 事件（占位符）


Refresh 方法（占位符）


OLEDrag 方法（占位符）


Appearance 属性（占位符）


BackColor 属性（占位符）


Caption 属性（占位符）


Enabled 属性（占位符）


Font 属性（占位符）


ForeColor 属性（占位符）


IntegralHeight 属性（占位符）


Locked 属性（占位符）


MouseIcon 属性（占位符）


MousePointer 属性（占位符）


OLEDragMode 属性（占位符）


OLEDropMode 属性（占位符）


SelLength 属性（占位符）


SelStart 属性（占位符）


SelText 属性（占位符）


Style 属性（占位符）


Text 属性（占位符）


未找到关键字

不能在 Visual Basic 帮助中找到已选择的关键字。可能是该关键字拼写有误、过多或过少选择文本、或所要寻求帮助的词不是有效的 Visual Basic 关键字。

要获得关于特定关键字的帮助，最简单的方法就是把插入点放到想要获得帮助的关键字内的任何地方，然后按 F1 键。不必选中该关键字。事实上，如果只选中了关键字的一部分，或超过了一个单词，“帮助”将不能找到要查找的内容。

要使用内置的“帮助”查找对话框，请按下工具栏上的“帮助主题”按钮。


Left、Top 属性（占位符）


Height、Width 属性（占位符）


Tag 属性（占位符）


ToolTipText 属性（占位符）


Count 属性（占位符）


Item 方法（占位符）


Hwnd 属性（占位符）


TabStop 属性（占位符）


Visible 属性（占位符）


Picture 属性（占位符）


Max, Min 属性（占位符）


Add 方法（占位符）


Clear 方法（占位符）


Container 属性（占位符）


控件集合（占位符）


Copies 属性（占位符）


DataBinding 对象（占位符）


DataBindings 集合（占位符）


Filename 属性（占位符）


FontBold、FontItalic、FontStrikeThru 属性（占位符）


FontName 属性（占位符）


FontSize 属性（占位符）


GetData 方法（占位符）


GetFormat 方法（占位符）


HelpFile 属性（占位符）


Item 属性（占位符）


Remove 方法（占位符）


SetData 方法（占位符）


Align 属性（占位符）


DragIcon 属性（占位符）


DragMode 属性（占位符）


HelpContextID 属性（占位符）


TabIndex 属性（占位符）


Alignment 常数（占位符）


Border 属性常数（占位符）


BorderStyle 常数（占位符）


BorderStyle 属性（ActiveX 控件）（占位符）


Clear 方法（ActiveX 控件）（占位符）


Clipboard 对象常数（占位符）


Color 常数（占位符）


CommonDialog 控件常数（占位符）


CommonDialog 错误常数（占位符）


Control 常数（占位符）


DataBindings 属性（占位符）


DDE 常数（占位符）


Drag-and-Drop 常数（占位符）


Drawing 常数（占位符）


FetchVerbs 方法（占位符）


Form 常数（占位符）


Graphics 常数（占位符）


Grid 控件常数（占位符）


Help 常数（占位符）


HideSelection 属性（ActiveX 控件）（占位符）


HideSelection 属性（占位符）


Image 属性（ActiveX 控件）（占位符）


ImageList 属性（ActiveX 控件）（占位符）


Index 属性（ActiveX 控件）（占位符）


Index 属性（占位符）


Key Code 常数（占位符）


Key 属性（ActiveX 控件）（占位符）


Menu Accelerator 常数（占位符）


Menu Control 常数（占位符）


Miscellaneous 常数（占位符）


MousePointer 常数（占位符）


OLE Container Control 常数（占位符）


Picture Object 常数（占位符）


Printer Object 常数（占位符）


RasterOp 常数（占位符）


Remove 方法（ActiveX 控件）（占位符）


ShowInTaskbar 属性（占位符）


ShowTips 属性（ActiveX 控件）（占位符）


ShowWhatsThis 方法（占位符）


Text 属性（ActiveX 控件）（占位符）


Value 属性（ActiveX 控件）（占位符）


Variant Type 常数（占位符）


Visual Basic 常数（占位符）


WhatsThisButton 属性（占位符）


WhatsThisHelp 属性（占位符）


WhatsThisHelpID 属性（占位符）


WhatsThisMode 方法（占位符）


Windows 95 控件常数（占位符）


ColIsVisible 属性（占位符）


ColPos 属性（占位符）


DataObject 对象（占位符）


DataObjectFiles 集合（占位符）


DataSource 属性（占位符）


Drag 方法（占位符）


DrawMode 属性（占位符）


FixedAlignment 属性（占位符）


GotFocus 事件（占位符）


GridLineWidth 属性（占位符）


Index 属性（控件数组）（占位符）


LostFocus 事件（占位符）


Move 方法（占位符）


Name 属性（占位符）


Object 属性（占位符）


Parent 属性（占位符）


RowColChange 事件（占位符）


RowIsVisible 属性（占位符）


RowPos 属性（占位符）


SetFocus 方法（占位符）


ZOrder 方法（占位符）


Files 方法（占位符）


Connect 事件（占位符）


HScrollSmallChange、VScrollSmallChange 属性（占位符）


MinHeight、MinWidth 属性（占位符）


“属性页”对话框（占位符）


RemoteHost 属性（占位符）


RemotePort 属性（占位符）


ViewportHeight、ViewportLeft、ViewportTop、ViewportWidth 属性（占位符）


Resync 方法（远程数据）（占位符）


ContainedVBControls 集合（占位符）


Member 对象（占位符）


Members 集合（占位符）


VBComponentsEvents 对象（占位符）


VBProjectsEvents 对象（占位符）


Files 属性（占位符）


Alignment 属性（占位符）


AboutBox 方法（占位符）


Col, Row 属性（占位符）


RowHeight 属性（占位符）


Scroll 事件（占位符）


ScrollBars 属性（占位符）


SelEndCol, SelStartCol, SelEndRow, SelStartRow 属性（占位符）


Appearance 属性 (ActiveX 控件) (placeholder)


BackColor, ForeColor 属性 (ActiveX 控件) (placeholder)


BorderStyle 常数 (ActiveX 控件) (placeholder)


Caption 属性 (ActiveX 控件) (placeholder)


Change 事件 (ActiveX 控件) (placeholder)


Clear 方法 (ActiveX 控件) (placeholder)


Click 事件 (ActiveX 控件) (placeholder)


Clipboard Object 常数 (ActiveX 控件) (placeholder)


Count 属性 (ActiveX 控件) (placeholder)


DataObject Object (ActiveX 控件) (placeholder)


DataObjectFiles 集合 (ActiveX 控件) (placeholder)


DataSource 属性 (ActiveX 控件) (placeholder)


DblClick 事件 (ActiveX 控件) (placeholder)


Drag-and-Drop 常数 (ActiveX 控件) (placeholder)


Enabled 属性 (ActiveX 控件) (placeholder)


FetchVerbs 方法 (ActiveX 控件) (placeholder)


Files 方法 (ActiveX 控件) (placeholder)


Font 属性 (ActiveX 控件) (placeholder)


FontName 属性 (ActiveX 控件) (placeholder)


FontSize 属性 (ActiveX placeholder)


GetData 方法 (ActiveX 控件) (placeholder)


GetFormat 方法 (ActiveX 控件) (placeholder)


HideSelection 属性 (ActiveX 控件) (complaceholder)


hWnd 属性 (ActiveX 控件) (placeholder)


Item 方法 (ActiveX 控件) (placeholder)


Key Code 常数 (ActiveX 控件) (placeholder)


Key 属性 (ActiveX 控件) (complaceholder)


KeyDown, KeyUp 事件 (ActiveX 控件) (placeholder)


KeyPress 事件 (ActiveX 控件) (placeholder)


Max, Min 属性 (ActiveX 控件) (placeholder)


MouseDown, MouseUp 事件 (ActiveX 控件) (placeholder)


MouseIcon 属性 (ActiveX 控件) (placeholder)


MouseMove 事件 (ActiveX 控件) (placeholder)


MousePointer 常数 (ActiveX 控件) (placeholder)


MousePointer 属性 (ActiveX 控件) (placeholder)


OLECompleteDrag 事件 (ActiveX 控件) (placeholder)


OLEDrag 方法 (ActiveX 控件) (placeholder)


OLEDragDrop 事件 (ActiveX 控件) (placeholder)


OLEDragMode 属性 (ActiveX 控件) (placeholder)


OLEDragOver 事件 (ActiveX 控件) (placeholder)


OLEDropMode 属性 (ActiveX 控件) (placeholder)


OLEGiveFeedback 事件 (ActiveX 控件) (placeholder)


OLESetData 事件 (ActiveX 控件) (placeholder)


OLEStartDrag 事件 (ActiveX 控件) (placeholder)


Picture 属性 (ActiveX 控件) (placeholder)


属性页对话框 (ActiveX 控件) (placeholder)


RemoteHost 属性 (ActiveX 控件) (placeholder)


RemotePort 属性 (ActiveX 控件) (placeholder)


SelLength, SelStart, SelText 属性 (ActiveX 控件) (placeholder)


SetData 方法 (ActiveX 控件) (placeholder)


ShowTips 属性 (ActiveX 控件) (complaceholder)


Text 属性 (ActiveX 控件) (complaceholder)


Value 属性 (ActiveX 控件) (complaceholder)


hDC 属性 (ActiveX 控件) (complaceholder)


Height, Width 属性 (ActiveX 控件) (complaceholder)


Index 属性 (ActiveX 控件) (complaceholder)


Left, Top 属性 (ActiveX 控件) (complaceholder)


Tag 属性 (ActiveX 控件) (complaceholder)


Visible 属性 (ActiveX 控件) (complaceholder)


Remove 方法 (ActiveX 控件) (complaceholder)


Object 属性 (ActiveX 控件) (placeholder)


属性页 (ActiveX 控件) (placeholder)


字体不存在 (错误 24574) (公用对话框控件) (complaceholder)


帮助内容placeholder


BorderStyle 属性 (ActiveX 控件) (placeholder)


RightToLeft 属性 (ActiveX 控件) (placeholder)


Refresh 方法 (ActiveX 控件) (placeholder)