答:由于普通TextBox控件不支持不連續(xù)字符串的同時高亮顯示,所以我們選擇RichTextBox控件。單擊工程(Project)選單項,在彈出的下拉選單中單擊組件(Components)選單項,從彈出的對話框中選擇Microsoft Rich Textbox Control5.0復(fù)選框,確定加載RichTextBox控件。
新建(New)一個工程,在窗體(Form)上添加一個RichTextBox控件和兩個Command(按鈕)控件,都采用系統(tǒng)默認(rèn)的Name屬性值;設(shè)置RichTextBox的Text屬性值為空,Command1和Command2的Caption屬性值分別設(shè)為“輸入文本”和“選擇字符串”。最后,添加如下VB代碼:
Private Sub Command1—Click()
Dim str As String
Dim Text As String
str=″輸入文本″
Text=InputBox(str)
RichTextBox1.Text=Text
End Sub
Private Sub Command2—Click()
Dim str As String
Dim Text As String
Dim Position As Integer
Dim Lenth As Integer
str=″輸入要高亮顯示的字符串″
Text=InputBox(str)
If Text 〈〉 ″″ Then
Position=InStr(RichTextBox1.Text, Text)-1
Lenth=Len(Text)
RichTextBox1.SelStart=Position
RichTextBox1.SelLength=Lenth
RichTextBox1.SelColor=#ff0000
Do While InStr(Position+Lenth+1, RichTextBox1.Text, Text) 〈〉 0
Position=InStr(Position+Lenth+1, RichTextBox1.Text, Text)-1
RichTextBox1.SelStart=Position
RichTextBox1.SelLength=Lenth
RichTextBox1.SelColor=#ff0000
Loop
End If
End Sub
按F5執(zhí)行程序,單擊“輸入文本”按鈕,在彈出的對話框中輸入一些文本,確定后,剛剛輸入的文本將顯示在RichTextBox中;再單擊“選擇字符串”按鈕,在彈出的對話框中輸入你希望高亮顯示的字符串,確定后,RichTextBox中相應(yīng)的字符串將以紅色高亮顯示。
問題:如何利用VB編寫程序?qū)崿F(xiàn)Windows 95操作系統(tǒng)的熱啟動?
答:要利用程序?qū)崿F(xiàn)系統(tǒng)的重新啟動,可以在你的程序中調(diào)用API函數(shù)來實(shí)現(xiàn)。建一個子函數(shù):(以VB為例)
Declare Function SystemParametersInfo Lib ″user32″ Alias —
″SystemParametersInfo″ (ByVal uAction As Long, ByVal uParam As Long,
ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
Sub DisableCtrlAltDelete(bDisabled As Boolean)
Dim X As Long
X=SystemParametersInfo(97, bDisabled, CStr(1), 0)
End Sub
Call DisableCtrlAltDelete(true) ′禁止熱啟
Call DisableCtrlAltDelete(false) ′允許熱啟
問題:如何把數(shù)據(jù)文件輸出到Text控件中?如果數(shù)據(jù)量比較大,窗體滿屏也不夠大,怎么解決?
答:有一個比較簡單的方法,就是把數(shù)據(jù)放到一個文本框(Text)里,并在其中加上水平和垂直滾動條。具體實(shí)現(xiàn)步驟為:先在窗體(Form)里加入一個文本框,采用默認(rèn)名Text1;然后,設(shè)置文本框Text1的屬性:Text屬性設(shè)置為空,MultiLine屬性設(shè)置為True,ScrollBars屬性設(shè)置為3-Both;接著添加如下VB代碼:
Private Sub Form—Load()
Dim Handle As Integer
Dim FileName As String
On Error GoTo ErrExit
begin:
′輸入要顯示的數(shù)據(jù)文件的名稱
FileName=InputBox$(″Input Filename″,
″Open File″)
On Error GoTo FileErr
Handle=FreeFile
Open FileName For Input As #Handle
′把數(shù)據(jù)文件中的數(shù)據(jù)輸出到文本框中
Text1.Text=Input$(LOF(Handle), Handle)
Close #Handle
Exit Sub
FileErr:
Dim ErrNum As Integer
If Err.Number=53 Then
ErrNum=MsgBox(″File not exist″, vbOKCancel, ″Error Information″)
If ErrNum=1 Then
GoTo begin
Else
Exit Sub
End If
End If
MsgBox Err.Description, , ″file open failed″
ErrExit:
Exit Sub
End Sub
′使文本框充滿整個窗體
Private Sub Form—Resize()
Text1.Left=0
Text1.Top=0
Text1.Width=Form1.Width-100
Text1.Height=Form1.Height-400
End Sub
通過這樣的處理,不僅能解決問題,而且用戶還可以在文本框中對數(shù)據(jù)進(jìn)行編輯。
問題:怎樣把文件列表框、目錄列表框和驅(qū)動器列表框相互關(guān)聯(lián)起來?
想做一個對話窗體,包含驅(qū)動器列表框、目錄列表框和文件列表框,并能實(shí)現(xiàn)三者的同步操作,怎么做?
答:在實(shí)際應(yīng)用中,經(jīng)常會遇到上述問題,在VB中解決這個問題非常簡單,可以通過Path屬性的改變引發(fā)Change事件來實(shí)現(xiàn)。例如:
Sub Dir1—Change()
File1.Path=Dir1.Path
End Sub
該事件過程使窗體上的目錄列表框Dir1和文件列表框File1產(chǎn)生同步。因為目錄列表框Path屬性的改變將產(chǎn)生Change事件,所以在Dir1—Change事件過程中,把Dir1.Path賦給File1.Path,就可以產(chǎn)生同步效果。
類似地,增加下面的事件過程,就可以使三種列表框同步操作:
Sub Drive1—Change()
Dir1.Path=Drive1.Drive
End Sub
該過程使驅(qū)動器列表框和目錄列表框同步,前面的過程使目錄列表框和文件列表框同步,從而使三種列表框同步,問題即可解決。
問題:如何在Windows 95或Windows 98啟動后自動啟動程序?
答:我們都知道在Windows 95和Windows 98的“開始”→“程序”選單下有一“啟動”選單項,當(dāng)每次啟動Windows 95或Windows 98時,系統(tǒng)都會自動啟動放在“啟動”選單欄里的可執(zhí)行程序。
但目前有好多軟件,像解霸五、ICQ,以及大部分實(shí)時偵測病毒的軟件等等,安裝后,并沒有放在“啟動”選單里,也能在啟動操作系統(tǒng)時自動啟動。怎么實(shí)現(xiàn)的呢?
其實(shí)只要知道Windows注冊表的一些知識,這個問題就不能稱之為問題了。用鼠標(biāo)單擊“開始”,打開開始選單,再單擊“運(yùn)行”,出現(xiàn)一對話框,然后輸入“regedit”,確定后,會打開系統(tǒng)注冊表編輯器,找到HKEY—LOCAL—MACHINE?SOFTWARE?Microsoft?Windows?CurrentVersion?Run,加入你的程序的入口,就可以了。如果不知道怎么加,就參考一下已經(jīng)存在的鍵值。