TextBox控件
在 Visual Basic 操作界面中,TextBox(文本框)控件所代表的圖標如圖一:

圖一
TextBox 控件主要用來顯示文本或用來輸入文本,如 Windows 登陸時的“口令”窗口,或者記事本的整個編輯區(qū)域。
雙擊工具箱中的文本框控件或者單擊文本控件,然后用鼠標在 VB 的工作區(qū)域拖拉,就可以創(chuàng)建文本框了。如圖二:

圖二
文本框控件的默認名稱為 TextX(X為 1、2、3,等等),命名規(guī)則為 TxtX(X為用戶自定義的名字,如 TxtShow、TxtFont、TxtColor ,等等)
一、文本框控件的主要屬性:
1、Text(文本)屬性:
本控件最重要的屬性,用來顯示文本框中的文本內容,可以在界面設置時指定,如圖三:

圖三
也可以在程序中動態(tài)修改,程序代碼規(guī)則:
文本框控件名.Text = "欲顯示的文本內容"
如要在一個名為 TxtFont 的文本框控件中顯示“隸書”字樣,那么輸入代碼:
TxtFont.Text = "隸書"
習題一:創(chuàng)建一個文本框(TxtContent)用來顯示文本;按鈕一(Cmd1),點擊時文本框內容變?yōu)椤案襾韺WVB神童教程”;按鈕二(Cmd2),點擊時文本框內容清空(也就是沒有內容)。
答案:見答案區(qū)。
2、SelText(選中文本)屬性:
本屬性返回或設置當前所選文本的字符串,如果沒有選中的字符,那么返回值為空字符串即""。
請注意,本屬性的結果是個返回值,或為空,或為選中的文本。
一般來說,選中文本屬性跟文件復制、剪切等剪貼板(在 VB 中,剪貼板用 Clipboard 表示)操作有關,如要將文本框選中的文本拷貝到剪貼板上:
Clipboard.SetText 文本框名稱.SelText(注意,本行沒有表示賦值的等號。)
要將剪貼板上的文本粘貼到文本框內:
文本框名稱.SelText = Clipboard.GetText(注意,本行有表示賦值的等號。)
例:一個文本框(TxtContent),按鈕一(CmdCopy)用于復制文本框中的選中文本;按鈕二(CmdPaste)用于將剪貼板上的內容粘貼到文本框內。
按鈕一:
Private Sub CmdCopy_Click()
Clipboard.SetText TxtContent.SelText
End Sub
按鈕二:
Private Sub CmdPaste_Click()
TxtContent.SelText = Clipboard.GetText
End Sub
3、SelStart 與 SelLength 屬性:
SelStart ,選中文本的起始位置,返回的是選中文本的第一個字符的位置。
SelLength ,選中文本的長度,返回的是選中文本的字符串個數(shù)。 例如:文本框 TxtContent 中有內容如下:
跟我一起學習 VB 神童教程
假設選中“一起學習”四個字,那么,SelStart 為 3 ,SelLength 為 4 。
4、MaxLength(最大長度)屬性:
本屬性限制了文本框中可以輸入字符個數(shù)的最大限度,默認為 0 ,表示在文本框所能容納的字符數(shù)之內沒有限制,文本框所能容納的字符個數(shù)是 64K ,如果超過這個范圍,則應該用其他控件來代替文本框控件。
這跟 Windows 中用記事本打開文件一樣,當文件過大,系統(tǒng)會自動調用寫字板來打開文件,而不是用記事本。
文本框控件 MaxLength 屬性既可以在界面設置過程中予以指定,如圖四:

圖四
也可以在設計時予以改變,代碼如下:
文本框控件名.Maxlength = X(X為阿拉伯數(shù)字,如 10、20、57,等等)。
5、MultiLine(多行)屬性:
本屬性決定了文本框是否可以顯示或輸入多行文本,當值為 True ,文本框可以容納多行文本;當值為 False ,文本框則只能容納單行文本。
本屬性只能在界面設置時指定,程序運行時不能加以改變。如圖五:

圖五
6、PasswordChar(密碼)屬性:
本屬性主要用來作為口令功能進行使用。例如,若希望在密碼框中顯示星號,則可在“屬性”窗口中將 PasswordChar 屬性指定為 “*” 。這時,無論用戶輸入什么字符,文本框中都顯示星號。如圖六:

圖六
在 VB 中,PasswordChar 屬性的默認符號是星號,但你也可以指定為其他符號。但請注意,如果文本框控件的 MultiLine(多行)屬性為 True ,那么文本框控件的 PasswordChar 屬性將不起作用。
習題二:一個文本框(TxtPassword),PasswordChar 屬性指定為星號“*”;一個按鈕(CmdShow);另外還有一個標簽(LblShow),在初始狀態(tài)下,Caption 為空。程序目的在于,點擊 CmdShow 按鈕,LblShow 能顯示文本框控件中輸入的密碼。
答案:見本節(jié)后面的答案區(qū)。
7、ScrollBars(滾動條)屬性:
本屬性可以設置文本框是否有滾動條。當值為 0 ,文本框無滾動條;值為 1 ,只有橫向滾動條;值為 2 ,只有縱向滾動條;值為 3 ,文本框的橫豎滾動條都具有。如圖七:

圖七
8、Locked(鎖定)屬性:
當值為 False ,文本框中的內容可以編輯;當值為 True ,文本框中的內容不能編輯,只能查看或進行滾動操作。
二、文本框控件的事件:
除了 Click、DbClick 這些不常用的事件外,與文本框相關的主要事件是 Change、GotFocus、LostFocus 事件。
1、Change 事件:
當用戶向文本框中輸入新內容,或當程序把文本框控件的 Text 屬性設置為新值時,觸發(fā) Change 事件。
2、GotFocus 事件:
本事件又名“獲得焦點事件”。所謂獲得焦點,其實就是指處于活動狀態(tài)。在電腦日常操作中,我們常常用 Alt+Tab 鍵在各個程序中切換,處于活動中的程序獲得了焦點,不處于活動的程序則失去了焦點(LostFocus)。
3、LostFocus 事件:
失去焦點,詳情如上。 例子:一個文本框(TxtContent),默認狀態(tài)下內容為空;當獲得焦點時,文本框內容顯示————“大家好,課程還難嗎”字樣;當失去焦點,文本框回到初始狀態(tài)。另外再創(chuàng)建一個標簽(LblShow),當用戶試圖向文本框輸入文本或改變文本框本來的文本時,標簽顯示“標簽的作用大家還清楚嗎”字樣。
界面如圖八:

圖八
程序如下:
文本框:
Private Sub TxtContent_GotFocus()
TxtContent.Text = "大家好,課程還難嗎"
End Sub
Private Sub TxtContent_LostFocus()
TxtContent.Text = ""
End Sub
Private Sub TxtContent_Change()
LblShow.Caption = "標簽的作用大家還清楚嗎"
End Sub
三、知識點:
1、請記住,Clipboard 指的是 Windows 剪貼板,剪貼板最常用的操作是所選文本的拷貝與粘貼。
拷貝:
Clipboard.SetText 文本框名稱.SelText
粘貼:
文本框名稱.SelText = Clipboard.GetText
2、Multiline 屬性為 True 時,文本框控件的 PasswrodChar 屬性不起作用。
3、如果要讓文本框的內容自動換行,只需取消文本框的橫向滾動條就行了。
四、答案區(qū):
習題一:
按鈕一:
Private Sub Cmd1_Click()
TxtContent.Text = "跟我來學 VB 神童教程"
End Sub
按鈕二:
Private Sub Cmd2_Click()
TxtContent.Text = ""
End Sub
習題二:
按鈕:
Private Sub CmdShow_Click()
LblShow.Caption = TxtPassword.Text
End Sub