在VB中,如何將數據庫中的試題和圖形存放在同一控件中,且能夠通過滾動條閱讀?(佚名)
在VB中,RichTextBox控件可以在一個控件中顯示圖形和文字,而且支持滾動條,所以這個問題可以借助RichTextBox控件得以解決。在下面的介紹中,我們假定數據庫為test.mdb,它有一個表"試題",在這個表中有一個字段"題目",用來保存試題的文字和圖形,這個字段是Memo型的。
1. 如何准備試題
首先將試題的文字和圖形編輯後保存為RTF格式。使用Windows 9x/NT的寫字板(WordPad)或其他字處理軟件Word、WPS 2000都可以生成RTF格式文件。RichTextBox控件對RTF格式的支持與寫字板完全相同,但會忽略Word、WPS 2000中的一些高級設置,如行間距等。圖形最好采用黑白或16色的,這樣一般一個RTF文件大小只有幾十K字節。如果采用24位真彩色,RTF文件可能有數兆字節,會影響VB的運行效果。
然後將保存的RTF文件加入到數據庫中。你可以建立一個窗體,在其中加上一個按鈕和一個RichTextBox控件,然後輸入下面的代碼。點擊按鈕,我們就可以將test.rtf文件加入到數據庫中。這裡的核心語句是AppendChunk,它是用來向Memo型字段加入數據的。
Private Sub Command1_Click()
Dim dbTest As Database
Dim rdTest As Recordset
Set dbTest = OpenDatabase("g:\test.mdb")
Set rdTest = dbTest.OpenRecordset("試題")
rdTest.AddNew
RichTextBox1.LoadFile "g:\test.rtf"
rdTest("題目").AppendChunk RichTextBox1.TextRTF
rdTest.Update
End Sub
2. 如何制作浏覽試題的程序
准備好了試題庫,我們就可以利用VB的數據綁定顯示試題了。首先建立圖1所示的窗體,並在其上放置一個RichTexBox控件、一個Data控件和其他相關控件。然後設置如下屬性:
控件
屬性
值
Data1
Database
Test.mdb
Recordsource
試題
RichTextBox1
DataSource
Data1
DataFIEld
題目
Locked
True
ScrollBars
2
在學生回答問題時,一般不能允許學生隨意修改試題,所以我們把RichTextBox1的Locked屬性設置為True。 圖1 利用RichTextBox控件顯示試題