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

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

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

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

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

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

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

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

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