答:由于普通TextBox控件不支持不連續(xù)字符串的同時高亮顯示,所以我們選擇RichTextBox控件。單擊工程(Project)選單項,在 彈出的下拉選單中單擊組件(Components)選單項,從彈出的對話框中選擇Microsoft Rich Textbox Control 5.0復選框,確定加載RichTextBox控件。 新建(New)一個工程,在窗體(Form)上添加一個RichTextBox控件和兩個Command(按鈕)控件,都采用系統(tǒng)默認的Name屬性 值;設置RichTextBox的Text屬性值為空,Command1和Command2的Caption屬性值分別設為“輸入文本”和“選擇字符 串”。最后,添加如下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中相應的字符串將以紅色高亮顯示。 問題:如何利用VB編寫程序實現Windows 95操作系統(tǒng)的熱啟動? 答:要利用程序實現系統(tǒng)的重新啟動,可以在你的程序中調用API函數來實現。建一個子函數:(以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) ′允許熱啟 問題:如何把數據文件輸出到Text控件中?如果數據量比較大,窗體滿屏也不夠大,怎么解決? 答:有一個比較簡單的方法,就是把數據放到一個文本框(Text)里,并在其中加上水平和垂直滾動條。具體實現步驟為:先在窗體(Form)里加入一 個文本框,采用默認名Text1;然后,設置文本框Text1的屬性:Text屬性設置為空,MultiLine屬性設置為 True,ScrollBars屬性設置為3-Both;接著添加如下VB代碼: Private Sub Form—Load() Dim Handle As Integer Dim FileName As String On Error GoTo ErrExit begin: ′輸入要顯示的數據文件的名稱 FileName=InputBox$(″Input Filename″, ″Open File″) On Error GoTo FileErr Handle=FreeFile Open FileName For Input As #Handle ′把數據文件中的數據輸出到文本框中 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 通過這樣的處理,不僅能解決問題,而且用戶還可以在文本框中對數據進行編輯。 問題:怎樣把文件列表框、目錄列表框和驅動器列表框相互關聯起來? 想做一個對話窗體,包含驅動器列表框、目錄列表框和文件列表框,并能實現三者的同步操作,怎么做? 答:在實際應用中,經常會遇到上述問題,在VB中解決這個問題非常簡單,可以通過Path屬性的改變引發(fā)Change事件來實現。例如: Sub Dir1—Change() File1.Path=Dir1.Path End Sub 該事件過程使窗體上的目錄列表框Dir1和文件列表框File1產生同步。因為目錄列表框Path屬性的改變將產生Change事件,所以在Dir1—Change事件過程中,把Dir1.Path賦給File1.Path,就可以產生同步效果。 類似地,增加下面的事件過程,就可以使三種列表框同步操作: Sub Drive1—Change() Dir1.Path=Drive1.Drive End Sub 該過程使驅動器列表框和目錄列表框同步,前面的過程使目錄列表框和文件列表框同步,從而使三種列表框同步,問題即可解決。 問題:如何在Windows 95或Windows 98啟動后自動啟動程序? 答:我們都知道在Windows 95和Windows 98的“開始”→“程序”選單下有一“啟動”選單項,當每次啟動Windows 95或Windows 98時,系統(tǒng)都會自動啟動放在“啟動”選單欄里的可執(zhí)行程序。 但目前有好多軟件,像解霸五、ICQ,以及大部分實時偵測病毒的軟件等等,安裝后,并沒有放在“啟動”選單里,也能在啟動操作系統(tǒng)時自動啟動。怎么實現的呢? 其實只要知道Windows注冊表的一些知識,這個問題就不能稱之為問題了。用鼠標單擊“開始”,打開開始選單,再單擊“運行”,出現一對話框,然后 輸入“regedit”,確定后,會打開系統(tǒng)注冊表編輯器,找到HKEY—LOCAL—MACHINE? SOFTWARE?Microsoft?Windows?CurrentVersion?Run,加入你的程序的入口,就可以了。如果不知道怎么加,就參 考一下已經存在的鍵值。 |
|