RichTextBox控件可用於輸入和編輯文本,它還提供了比傳統TextBox控件更高級的格式化功能。
RichTextBox控件提供了壹些屬性,通過這些屬性,您可以對控件中的任何文本部分使用不同的格式。使用這些屬性,您可以使文本加粗或傾斜,更改文本的顏色,以及創建上標或下標。可以調整段落的左右縮進值,也可以使用懸掛縮進。
使用
作為壹個無底的文本框,它可以用來編寫讀取特別大的文本文件的應用程序。
在任何應用程序中實現壹個全功能的文本編輯器。
特點
以RTF格式或ASCII文本格式打開或保存文件。您可以使用該控件的方法(LoadFile和SaveFile)直接讀寫文件。還可以使用該控件的屬性(如SelRTF和TextRTF)結合Visual Basic的文件輸入和輸出語句來讀寫文件。
加載的內容。rtf文件拖動到RichTextBox控件中,只需將文件的內容(例如,從Windows 95資源管理器)直接拖動到控件中,或者將文件中在其他應用程序(例如,Microsoft Word)中使用的突出顯示部分直接拖動到控件中。
設置FileName屬性以加載. rtf或。txt文件放入控件中。
用SelPrint方法打印RichTextBox控件中的全部或部分文本。
將RichTextBox控件綁定到數據控件可以處理Microsoft Access數據庫中的Memo字段或其他數據庫中的大型文本字段(如SQL server中的TEXT數據類型)。
在運行時,通過使用OLEObject集合的Add方法將嵌入對象(如位圖、圖標和應用程序圖標)添加到控件中。在設計時或運行時,可以將任何嵌入對象拖放到控件中,包括文檔,如Microsoft Excel電子表格和Microsoft Word文檔。
在設計時設置滾動條。
默認情況下,RichTextBox沒有滾動條。在運行時,如果控件中安裝了壹個大文件,最終用戶將無法看到該文件的所有內容。為了使用戶能夠方便地滾動,ScrollBars屬性可以設置為1(水平)、2(垂直)或3(兩者都有)。這必須在設計時完成,因為ScrollBars屬性在運行時是只讀的。
用LoadFile和SaveFile方法打開和保存文件。
使用LoadFile和SaveFile方法,可以輕松地打開或保存RichTextBox控件的RTF文件。要打開文件,可以使用CommonDialog控件提供路徑名,如下所示:
私有子OpenFile()
“RichTextBox”控件的名稱為“rtfData”。
CommonDialog被稱為“dlgOpenFile”。
為文件名聲明壹個字符串變量。
顯示“打開文件”對話框。
並將變量設置為文件名。
Dim strOpen作為字符串
dlgOpenFile。ShowOpen
strOpen = dlgOpenFile。文件名
用LoadFile方法打開文件。
rtfData。加載文件存儲
末端接頭
使用SaveFile方法,保存文件同樣簡單:
私有子保存文件()
Dim strNewFile作為字符串
dlgOpenFile。顯示保存
strNewFile = dlgOpenFile。文件名
rtfData。保存文件strNewFile
末端接頭
請註意,如果文件包含控件不支持的RTF編碼,則只有相關文本不會出現在RichTextBox控件中。
用SelFontName、SelFontSize和SelFontColor設置字體屬性。
若要更改RichTextBox控件中的字體特征,可以使用SelFontName、SelFontSize和SelFontColor屬性。
通常使用ComboBox控件來顯示這些屬性的選項。然後,您可以使用ComboBox控件的Click事件更改該屬性。下面的代碼首先在Form對象的Load事件中填充壹個名為“cmbFonts”的ComboBox控件。然後使用Click事件更改RichTextBox控件的SelFontName屬性
私有子窗體_Load()
將I標註為整數
使用cmbFonts
對於i = 0進行篩選。字體。計數- 1
。添加項目屏幕。字體(壹)。文本
以…結尾
末端接頭
私有子cmbFonts_Click()
rtfData。SelFontName = cmbFonts。文本
末端接頭
要點這些屬性僅影響選定的文本,或者,如果沒有選定文本,則影響在當前光標位置之後鍵入的文本。
格式化段落的縮進、懸掛縮進和項目符號。
RichTextBox控件的另壹個特性是它可以創建帶縮進、懸掛縮進和項目符號的段落。這三種樣式如下所示:
縮進和項目符號縮進(rtf_3ind.bmp)
要使用SelFontName、SelFontSize和SelFontColor屬性,最終用戶必須選擇壹個或多個段落。這裏假設用戶只選擇第二段,創建縮進和懸掛縮進的代碼如下:
假設控件的名稱為“rtfData”。
rtfData。SelIndent = .5
rtfdata。selhangindent = 1.5
請註意,用於設置SelIndent、SelHangingIndent、BulletIndent和其他屬性的值取決於RichTextBox控件的容器的ScaleMode屬性。例如,如果RichTextBox控件的容器是壹個Form對象,當Form對象的ScaleMode屬性從7 (cm)更改為1(緹)時,SelIndent屬性必須同時從0.5 (cm)更改為283(緹)。這是因為壹厘米= 567緹。
另請註意,段落的SelBullet屬性必須設置為True,才能將該段落設置為項目符號樣式。
用SelChange事件通知屬性更改
要宣布用戶選擇的任何文本的當前屬性,可以使用SelChange事件。每當插入點或所選內容發生變化時,都會發生此事件。下面的示例使用Toolbar控件通知用戶SelBold屬性的更改。
私有Sub rtfData_SelChange()
重置工具欄按鈕對象的。
值屬性。工具欄控件的名稱是
tlbRTF .
SelBold返回0,-1或Null。如果為空
將其Mi xedState屬性設置為True。
選擇案例rtfData。塞爾博爾德
“事例0”不是粗體。
tlbRTF。按鈕(“粗體”)。值= tbrUnpressed
Case -1 '為粗體。
tlbRTF。按鈕(“粗體”)。值=壓力
Case Else的混合狀態。
tlbRTF。按鈕(“粗體”)。Mi xedState = True
結束選擇
末端接頭
用SelPrint方法打印RichTextBox的內容
若要打印RichTextBox控件,可以使用SelPrint方法。此方法需要壹個參數,即用於打印RichTextBox控件內容的Printer對象的hDC屬性。如果用戶選擇了某些文本,則只打印選定的文本。如果沒有選擇文本,則打印控件的所有內容。
以下代碼在用戶單擊CommandButton控件後,顯示帶有CommonDialog控件的打印機對話框。Flags屬性禁用頁碼,並允許用戶在此對話框中選擇各種選項:
Private Sub cmdPrint_Click()
“CommonDialog”控件的名稱是“dlgPrint”。
dlgPrint。flags = cdlPDReturnDC+cdlPDNoPageNums
If rtfData。那麽SelLength = 0
dlgPrint。Flags = dlgPrint。標誌+ cdlPDAllPages
其他
dlgPrint。Flags = dlgPrint。標誌+ cdlPDSelection
如果…就會結束
dlgPrint。放映打印機
rtfData。SelPrint dlgPrint.hDC
末端接頭
有關使用CommonDialog控件的詳細說明,請參見《Visual Basic程序員指南》中的“使用CommonDialog控件”。
顯示控件中的嵌入對象
在運行時,最終用戶可以拖動任何嵌入的對象,並將其放入RichTextBox控件中。控件中可以嵌入兩種對象:顯示為圖標的對象和顯示為數據的對象。下圖顯示了嵌入了file對象的RichTextBox作為第壹種類型的示例。
單擊時,嵌入對象將按預期啟動與文件關聯的應用程序。當控件中的數據保存為RTF文件時(使用SaveFile方法),嵌入在對象中的信息也將被保存。
但是,如果最終用戶在控件中嵌入位圖,將顯示位圖而不是其圖標,如下所示:
單擊位圖將啟動畫圖應用程序,使最終用戶能夠編輯位圖。
使用OLEObjects集合的Add方法添加嵌入對象。
使用OLEObject集合的Add方法以編程方式將嵌入對象添加到控件中,如下所示:
Private Sub cmdAddObject_Click()
將蝴蝶位圖添加到控件中。
RichTextBox1。OLEObjects.Add、、、" bfly.bmp "
末端接頭
在運行時,可以使用Add、Clear和Remove方法將嵌入的對象動態填充到控件中。