丰富文本格式(Rich Text Format),或者简称为RTF,是一种被广泛认可的格式化文本存储和传输标准。RTF由纯ASCII文本和嵌入的用来控制格式的特殊代码构成。大多数文字处理软件,包括微软的Word,都支持RTF。这种复杂的标准可以控制你日常工作所能够用到的各种格式,例如字体、缩进、黑体、下划线、大纲列表,以及制表符等。
给你的Visual Basic程序添加RTF(处理)能力的好方法是使用Rich TextBox(RTB)控件。要在程序里使用这个控件,你必须向它添加一个参照,这要选择“项目|组件(Project | Components)”,然后在列表里选择“微软Rich TextBox控件(Microsoft Rich TextBox Control)”。
在被放到窗体里之后,RTB控件看起来和常规的TextBox一样,而且行为方式也和它非常相似。其大多数的特性都必须由程序通过控件的性质和方法来访问。
例如,RTB控件的SelBold性质用来把文本变成黑体。如果你把这个性质设置为真(True),那么控件里被选中的(高亮的)文本或者之后被输入的文本就会是黑体的。把SelBold设置为伪(False)会从文本里去掉黑体。还有用来控制斜体、下划线和删除线等类似的性质。
RTB控件能够显示任何安装在系统里的字体。尽管TextBox控件也能够做到这一点,但是TextBox控件必须对所有的文本使用相同的字体,而RTB控件能够对文本不同的部分使用不同的字体。例如,你可以在窗体的Load(加载)控件过程里使用下面这段代码来加载一个列出了所有可用字体的组合框(Combo Box):
Private Sub Form_Load()
Dim i As Integer
For i = 0 To Screen.FontCount - 1
Combo1.AddItem Screen.Fonts(i)
Next
End Sub
那么,当用户从组合框里选择字体的时候,下面的代码就会把它指派给RTB控件:
Private Sub Combo1_Click()
RichTextBox1.SelFontName = Combo1.Text
End Sub
内置的方法还能够处理文件操作;例如,你可以使用LoadFile和SaveFile方法来直接读取或者保存数据。或者,如果你希望的话,你的程序可以使用TextRTF性质来访问控件的数据;然后,使用VB里和文件相关的常用语句来进行磁盘操作。一个非常有用的特性是,TextRTF性质会获取控件的所有文本(包括任何RTF代码),但是Text性质只会返回文本而不带有任何代码。
你还可以对没有格式化的文本使用RTB控件。在用这种方法使用它的时候,你可以把这个控件当作常规TextBox控件的替代品——而没有对文本64K字节长度的限制。事实上,RTB控件的内容只受系统内存的限制。
对于这个强大的和灵活的控件,你还有更多的东西需要自己去探索(例如,对打印和嵌入式OLE对象的支持)。当你需要为Visual Basic应用程序加入对格式化文本的支持时,RTB控件可能就是你需要的东西。