在Visual Basic中,文本框(TextBox)是最常用的控件,熟練運用文本框是開發出高質量的應用程序的基礎。筆者在從事應用程序開發中,摸索出有關文本框的應用技巧,寫出來與VB愛好者共享。
1、設置只讀文本框
有些時候在窗口顯示一段信息,但又不希望用戶去改變它,怎樣實現文本的只讀呢?首先,我們可以利用標簽框(label)的只讀屬性,以標簽來代替文本框以實現只讀屬性,但也可以用小程序實現真正的文本框的只讀。
Sub Text1_KeyPress (keyascii As Integer) keyascii = 0 End Sub
或者也可以用sendkey方法使文本框失去焦點,如以下程序:
Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer) SendKeys "{tab}" End Sub
或者直接設置控件的屬性來實現,具體操作如下:
設置Text1.Enabled=True,這樣設置後Text1無法獲得焦點
設置Text1.Locked=True,這樣設置後Text1可以獲得焦點
2、限定文本框的輸入內容和格式
以下程序可以實現限定文本框只能輸入數字:
Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii < Asc(0) Or KeyAscii > Asc(9) Then KeyAscii = 0 MsgBox "請輸入數字" End If End Sub
若想限定文本框輸入格式,可以使用VB的FORMAT函數,也可以使用專業版的屏蔽控件(Masked Edit),通過設定屏蔽控件的Mask屬性可以對文本框的輸入格式作精確控制。
3、為TextBox創建快捷鍵
VB規定,添加在窗體上的控件均在其Tabindex屬性中記載其加載順序,程序運行時焦點按Tabindex屬性規定的順序在控件間跳轉。而為了簡化操作,可VB中為任何具有caption的屬性的控制創建快捷鍵,這通過caption屬性中在想作為快捷鍵的字母前加&號實現。但有一個問題值得注意,而類似文本框這樣的控件無caption這樣的屬性,這時可將標簽與文本框同時使用。為lable創建快捷鍵,標簽Tabindex屬性設置比文本框小1,又因為label不能接收按點,焦點會自動跳至文本框。這相當於為文本框創建了快捷鍵。具體步驟如下:
(1)首先繪制標簽,再繪制文本框。或隨意繪制各種控制,將標簽Tabindex屬性設置比文本框小1
(2)在標簽的caption屬性中使用“&”號設定快捷鍵
這樣就相當於為文本框設定了快捷鍵,當你按下標簽框的快捷鍵時,焦點就會跳至文本框上。
4、在設計時實現文本框換行
對於文本框,在設計屬性窗口不能輸入換行符,但可以再程序執行時用代碼來換行,即使用ASCII字符的13和10,如下列小程序就可將兩行文本放入文本框:
Sub form_load( ) NL=chr(13)+chr(10) text1.text=“my name is”& NL &“liu qiang” End sub
5、創建口令文本框
創建口令文本框可用設置屬性的方法,也可以通過調用WINDOWS的API應用函數接口來實現。首先,文本框的屬性Passwordchar和maxlength可用來設置口令框。其中Passwordchar指定文本框顯示的字符,如指定“*”,則在文本框內顯示“*”,Maxlength確定文本框中能輸入幾個字符。超過Maxlength以後,文本框發出警告聲,不能接收更多的字符。若使用WINDOWS應用函數接口,可用GetWindowLong、SetWindowsLong和SendMessage等接口函數來實現,有興趣的讀者可查閱Windows API函數手冊或VB的聯機幫助文件,這裡就不一一贅述了。