4.16 使用RichTextBox 编写超级文本编辑器

通过上一节讲述的方法已经将RichTextBox控件添加到了工具箱中。该控件可用于输入和编辑文本,它同时提供了比以前所学的TextBox控件更高级的格式特性。比如,TextBox控件里当改变字体、字号时,所有文字的字体、字号都会被改变,而RichTextBox可以只改变所选择的文字的字体、字号,而其他未被选择的文字的字体、字号不会被改变,RichTextBox甚至可以显示图形。下面用一个实例说明RichTextBox控件在文字编辑方面的强大功能。RichTextBox控件的名称前缀是rtf。

【实例4.19】使用RichTextBox控件编写一个超级文本编辑器,在文本编辑区可以自由地设置所选文字的字体、字号和字体颜色等,如图4.39所示。

图4.39 实例4.19运行效果

程序中各对象的属性设置见表4.20。

表4.20 实例4.19中各对象属性设置

编写事件过程如下。

        01 Private Sub Form_Load()
        02        cboFontName.AddItem "宋体"
        03        cboFontName.AddItem "黑体"
        04        cboFontName.AddItem "隶书"
        05        cboFontName.AddItem "幼圆"
        06        cboFontName.ListIndex = 0 '将组合框中的第一项“宋体”显示到文本区中
        07
        08        cboFontSize.AddItem "10"
        09        cboFontSize.AddItem "20"
        10        cboFontSize.AddItem "30"
        11        cboFontSize.AddItem "40"
        12        cboFontSize.ListIndex = 0   '将组合框中的第一项“10”显示到文本区中
        13
        14       rtfDOC.Font.Name = "宋体" '设置RichTextBox的字体为“宋体”,与组合框中的字体内容相符
        15       rtfDOC.Font.Size = 10     '设置RichTextBox控件的字号为10,与组合框中的字号内容相符
        16 End Sub
        17
        18 Private Sub cboFontName_Click()
        19       rtfDOC.SelFontName = cboFontName.Text          '设置RichTextBox中所选文字的字体
        20 End Sub
        21
        22 Private Sub cboFontSize_Click()
        23       rtfDOC.SelFontSize = Val(cboFontSize.Text)    '设置RichTextBox中所选文字的字号
        24 End Sub
        25
        26 Private Sub optRed_Click()
        27       rtfDOC.SelColor = RGB(255, 0, 0)                 '设置RichTextBox中所选文字的颜色为红色
        28 End Sub
        29
        30 Private Sub optGreen_Click()
        31       rtfDOC.SelColor = RGB(0, 255, 0)                 '设置RichTextBox中所选文字的颜色为绿色
        32 End Sub
        33
        34 Private Sub optBlue_Click()
        35       rtfDOC.SelColor = RGB(0, 0, 255)                 '设置RichTextBox中所选文字的颜色为蓝色
        36 End Sub

【代码说明】代码第02~06行是将字体添加到组合框1中,其中第06行显示默认的字体;代码第08~12行将字号添加到组合框2中,其中第12行显示默认的字号;代码第18~36行分别根据组合框的选择来设置RichTextBox控件中的文字。

说明

读者可以结合普通TextBox中讲述的应用案例继续完善本实例。关于RichTextBox更详细的内容可以使用F1键调用联机帮助查看。