版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第5章 常用標(biāo)準(zhǔn)控件 控件是構(gòu)成應(yīng)用程序交互界面的基本元素,只有掌握了各種控件的功能,它所包含的屬性、方法和事件,才能編寫功能強大、便于使用、具有實用價值的應(yīng)用程序。 正如前面所述,Visual Basic 控件分為三類,一類是標(biāo)準(zhǔn)控件(或叫內(nèi)部控件),一類是ActiveX控件,還有一類是可插入對象。本章主要介紹Visual Basic 標(biāo)準(zhǔn)控件的屬性、方法、事件和使用。5.1 文本控件 文本控件是指在應(yīng)用程序中用來輸入輸出文本而使用的控件。在Visual Basic 中,與文本有關(guān)的標(biāo)
2、準(zhǔn)控件有兩個:標(biāo)簽(Label)和文本框(TextBox)。5.1.1 標(biāo)簽(Label) 標(biāo)簽的主要功能是在窗體上顯示文本,常用來標(biāo)注本身不具有標(biāo)題屬性的控件,做它們的標(biāo)題,或者作欄目名。程序運行時,標(biāo)簽不能接收鍵盤操作,即不具有焦點。 1. 標(biāo)簽的常用屬性、方法和事件 標(biāo)簽的許多屬性與窗體或其他控件相同,它們包括: 顏色屬性:Backcolor、ForeColor 等 字體字形屬性:Font、Font
3、Bold、FontItalic、FontName、FontSize、FontUnderline等 大小和位置屬性:Height、width、Left、Top 其他:Enabled、Visible (1) Name (名稱)屬性 標(biāo)簽的標(biāo)識,默認(rèn)為Label1, Label2,。前綴為Lbl。 (2) Caption屬性 標(biāo)簽的標(biāo)題。標(biāo)簽只能用Caption屬性來設(shè)置或修改顯示的文本
4、信息。默認(rèn)情況下,Caption的文本是標(biāo)簽控件中唯一可見的部分。 在Windows及其他一些應(yīng)用軟件中,通過Alt鍵和某個特定的字母(帶下劃線),可以把焦點移到指定的位置,或執(zhí)行某個菜單命令,該特定的字母稱為“訪問鍵”或叫“熱鍵”。在Visual Basic中,設(shè)置訪問鍵的方法是在設(shè)置控件的Caption屬性時,在某個特定字母前插入一個符號“&”。例如,以下的代碼在為標(biāo)簽Label1設(shè)置Caption屬性的同時,指定了一個訪問鍵“N”: Label1.Caption=”請輸入用戶名(&Name):”
5、60; 注意:對于具有焦點的控件,按下相應(yīng)的訪問鍵,將激活該控件,使該控件獲得焦點。而對于標(biāo)簽(標(biāo)簽不具有焦點),按下相應(yīng)的訪問鍵,將把焦點傳遞給Tab順序中緊跟著標(biāo)簽的下一個具有焦點的控件。 (3) Alignment屬性 Caption的文本在標(biāo)簽控件中的排列方式,0-左對齊,1-居中對齊,2-右對齊 (4) AutoSize屬性 設(shè)置控件是否能自動調(diào)整控件大小以顯示所有的內(nèi)容。它有兩種設(shè)置值:
6、60; True 表示標(biāo)簽控件的大小隨文本的改變而變化; False(缺省設(shè)置)表示標(biāo)簽控件大小不隨文本的改變而變化。 (5)BackStyle屬性 指出Label控件背景樣式是透明的還是不透明的。如果選擇0Transparent,表示標(biāo)簽的背景樣式為透明;如果選擇1Opaque(默認(rèn)值),表示不透明,此時標(biāo)簽將覆蓋背景。標(biāo)準(zhǔn)控件中只有標(biāo)簽和形狀(Shape)控件具有該屬性。 (6) BorderStyle屬性 用來
7、設(shè)置標(biāo)簽控件的邊框樣式,取值有兩個: 0-None (缺省值),表示標(biāo)簽沒有邊框; 1-Fixed single,表示標(biāo)簽將加上單線邊框。 (7) WordWrap屬性 該屬性只適用于標(biāo)簽,用來設(shè)置標(biāo)簽以什么方式擴大控件大小以顯示標(biāo)題文字。它有True或False兩個屬性值。如果設(shè)置為True,標(biāo)簽控件將在垂直方向上變化大小以與標(biāo)題文本相適應(yīng),水平方向的大小與原來所畫的大小相同;如果設(shè)置為False,標(biāo)簽不改變垂直方向上的大小以適應(yīng)文本的需要,而水平方
8、向上的大小是取決于AutoSize的設(shè)置情況。注意:為了使WordWrap屬性起作用,應(yīng)把AutoSize設(shè)置為True。 標(biāo)簽和窗體及大多數(shù)控件一樣具有許多方法,如Move方法、Drag方法以及Refresh方法;并且可以識別多種事件,如Click、DblClick等。但是,由于標(biāo)簽主要用來顯示一小段文本,所以一般不需要使用其他方法及事件。 例 5-1 編寫程序。首先在窗體添加四個控件,如圖5-1(a),其各對象的屬性設(shè)置如表4-1所示。程序運行后,單擊“歡迎”或“日期”按鈕,或按相應(yīng)的訪問鍵,在Label1中顯示相應(yīng)的
9、文本信息,如圖5-1(b)所示。 (a)設(shè)計圖 (b)單擊日期按鈕后的運行圖圖5-1 例5-1設(shè)計及運行圖表5-1 例5-1中各控件的屬性設(shè)置值 編寫的程序代碼如下: Private Sub Command1_Click() Label1.Caption = "歡迎
10、使用" & vbCrLf & " Visual Basic" End Sub Private Sub Command2_Click() Label1.Caption = "今天是:" & Chr(13) & Chr(13) & Year(Date) & "年" _ &
11、#160; & Month(Date) & "月" & Day(Date) & "日" End Sub Private Sub Command3_Click()
12、0; Unload Me '從內(nèi)存中卸載本窗體 End Sub5.1.2 文本框(TextBox) 添加在窗體上的文本框控件是一個文本編輯區(qū)域,在程序運行期間不僅可以顯示文本,還可以接收鍵盤輸入及編輯,類似于一個簡單的編輯器。 前面介紹的一些屬性也可以用于文本,它們包括: 顏色屬性:Backcolor、ForeColor 等 字體字形屬性:Font、FontBold、FontItalic、Font
13、Name、FontSize、FontUnderline等 大小和位置屬性:Height、width、Left、Top 其他:BordStyle、Enabled、Visible 1文本框常用屬性 (1) Name(名稱)屬性 用來標(biāo)識文本框。默認(rèn)值為Text1, Text2,等,前綴為“Txt” (2) Text屬性 設(shè)置或返回文本框控件中的文本內(nèi)
14、容。其語法格式如下: Object.Text = String 例如,Text1.text=”Visual Basic ” 在文本框中顯示“Visual Basic ” Form1.Caption=Text1.Text 將Text1中的內(nèi)容返回,顯示在窗體標(biāo)題欄處。 (3) MaxLength屬性 設(shè)置文本框中允許輸入的字符串最大長度。缺省值為0,表示該文本框中字符串的長度受系統(tǒng)內(nèi)存的限制,一般不能超過32KB(多行
15、文本);若該屬性被設(shè)置為大于0的數(shù),則該數(shù)就是用戶能夠輸入的最大字符數(shù)。 (4) MultiLine屬性 默認(rèn)狀態(tài)下,文本框以單行顯示方式。MnltiLine 屬性可以將文本框設(shè)置為多行顯示方式。該屬性有True和False兩種取值。為True時,文本框?qū)⒁远嘈蟹绞斤@示或編輯文本,即可以自動換行,按Ctrl+回車時,可以插入一個空行;否則,只能顯示在一行。 MultiLine屬性常與ScrollBars屬性一起使用,構(gòu)造一個簡單的帶滾動條的字處理器。
16、(5) ScrollBars屬性 該屬性設(shè)置文本框是否有垂直或水平滾動條。它有0,1,2,3四種屬性值,其含義為: 0VbSBNone 默認(rèn)值,表示文本框中無滾動條; 1VbHorizontal 表示只有水平滾動條; 2VbVertical 表示只有垂直滾動條; 3VbBoth 表示既有水平滾動條又有垂直滾動條 注意:為了使該屬性設(shè)置值有效,MultiLine屬性必須設(shè)置為True
17、。 (6) PasswordChar屬性 該屬性設(shè)置是否在控件中使用替代字符顯示用戶輸入的字符串。默認(rèn)為空,表示不使用替代字符,用戶輸入的什么字符在文本框中就顯示出什么符。如果為該屬性設(shè)置了某一字符,那么,無論用戶輸入什么內(nèi)容,在文本框中都只顯示該字符。例如,如果用戶設(shè)置文本框的PasswordChar屬性為字符“*”,那么,用戶在文本框中輸入的文本都以“*”顯示。所以,該屬性常用于口令輸入。 注意:PasswordChar屬性只是使顯示結(jié)果改變,并沒有改變用戶輸入的實際內(nèi)容,即Text
18、屬性中的內(nèi)容沒有變。另外,要想使PasswordChar屬性有效,MultiLine屬性必須設(shè)置為False。 (7) Locked屬性 設(shè)置文本框的讀寫方式。該屬性值為布爾值,當(dāng)設(shè)置為True時,對文本框中的內(nèi)容即可以讀也可以寫;當(dāng)設(shè)置為False時,對文本框里的內(nèi)容只能讀不能寫。 (8) SelLength、SelStart、SelText 屬性 SelLength:設(shè)置或返回所選擇的字符數(shù)。 SelStart:
19、設(shè)置或返回選擇文本的起始點;如果沒有文本被選中,則指出插入點的位置。 SelText:設(shè)置或返回包含當(dāng)前所選擇文本的字符串;如果沒有字符被選中,則為零長度字符串("")。 它們的語法格式分別為: 對象.SelLength = 數(shù)值 對象.SelStart = 索引值 對象.SelText = 字符串 其中: 對象:
20、可以是文本框和組合框。 數(shù)值:一個數(shù)值型表達式。用于確定所選文本的字符數(shù)。其有效范圍是 0 到文本框中文本的總數(shù)(en(Text1.text或Len(Combo1.text)。0表示沒有被選擇的文本。 索引值:一個數(shù)值型表達式,用于確定所選文本的起始點,或插入點位置。其有效范圍與SelLenght值相同0到文本框中文本總數(shù)。0 表示選擇的開始位置在第一個字符之前。 字符串:包含所選擇文本的字符串。 說明 這些屬性在設(shè)
21、計時是不可用的,運行時可讀寫。 使用這些屬性,可以設(shè)置或返回插入點的位置、建立插入范圍、在控件中選擇子串、或清除文本等,完成類似于復(fù)制、剪切、和粘貼操作。 當(dāng)使用這些屬性時: SelLength 的設(shè)置比 0 小會導(dǎo)致一個運行時錯誤。 SelStart 的設(shè)置比文本長度大,會使該屬性設(shè)置為現(xiàn)有文本長度0。 SelText 設(shè)置為新值時,會將 SelLength 設(shè)置為 0 并用新字符串代替所選擇的文本。&
22、#160; (9) IMEMode 屬性 設(shè)置或返回一個值,用來確定被選定對象的輸入方法編輯器(IMEInput Method Editor)狀態(tài)。其語法格式為: 對象.IMEMode = 值 其中,值為一個整數(shù),它指定了將要被對象使用的輸入法編輯器: 0(缺省設(shè)置)。表明“無 IME 控制”。 1表明打開IME。該設(shè)置僅對簡體漢字、繁體漢字和日文的IME有效。
23、0; 2表明關(guān)閉IME。使對象將處于英文輸入模式。該設(shè)置僅對簡體漢字、繁體漢字和日文 IME 有效。 說明 在設(shè)計時,可以使用對象的“屬性”窗口來設(shè)置對象的 IMEMode 屬性。在運行時,可以通過代碼返回或者設(shè)置 IMEMode 屬性。如果對象擁有焦點的時候改變了 IMEMode 屬性的設(shè)置,對象的 IME 狀態(tài)將發(fā)生相應(yīng)的改變。 2文本框常用事件和方法 文本框不僅支持鼠標(biāo)事件,還可以監(jiān)視用戶的擊鍵動作。 常用事件
24、 (1)Change事件 變化事件。當(dāng)用戶在文本框中輸入、編輯信息,或者在程序代碼中改變Text屬性值時都會觸發(fā)該事件。 (2) GotFocus事件 獲得焦點事件。當(dāng)用戶用Tab鍵、訪問鍵或鼠標(biāo)將焦點移到某個文本框時,該文本框?qū)⒂|發(fā)該事件。 (3)LostFocus事件 丟失焦點事件。當(dāng)用戶用“Tab”鍵、訪問鍵或鼠標(biāo)選取窗體上其他對象,使焦點離開該文本框時,本文本框?qū)⒂|發(fā)該事件
25、。 (4) KeyPress、KeyDown、KeyUp事件 鍵盤事件:KeyPress事件是按鍵事件,是當(dāng)用戶按了鍵盤上某個可打印字符鍵時觸發(fā)的事件;KeyDowm事件是按下事件,是當(dāng)用戶按下鍵盤上任一鍵時都會觸發(fā)的事件;KeyUp事件是彈起事件,當(dāng)用戶按下鍵盤上任一鍵松開時將觸發(fā)的事件。 (5) SetFocus方法 設(shè)置焦點的方法,是文本框常用的方法,它可以將焦點移到指定的文本框。 例 5-2 編寫程序,完成會
26、員登錄操作。其頁面設(shè)計如圖5-2(a)所示。要求密碼不得超過10位,呈星號“*”顯示,窗體及控件的一些屬性設(shè)置如表5-2所示。執(zhí)行程序,當(dāng)焦點移到口令處時,口令框中呈全選狀態(tài)如圖5-2(b)所示。 (a)設(shè)計時 (b)運行時圖5-2表5-2 例5-2中各控件的屬性設(shè)置值 當(dāng)焦點移到口令處時,口令呈全選狀態(tài)的代碼
27、如下: Private Sub TxtPassword_GotFocus() TxtPassword.SelStart = 0 TxtPassword.SelLength = Len(TxtPassword.Text) End Sub 例 5-3 編寫程序,模擬打字機,即在一
28、個文本框中輸入的內(nèi)容直接輸出到另一個文本框中。界面設(shè)計如圖5-3(a)所示。窗體及控件的一些屬性設(shè)置如表5-3所示。程序運行時焦點放在下面的文本框中同時打開系統(tǒng)默認(rèn)的輸入法,如圖5-3(b)所示。 (a)設(shè)計時 (b)運行時圖5-3表5-3 例5-3中各控件的屬性設(shè)置值 編寫如下代碼:
29、Private Sub Form_Load() Me.Show With Text1 .Text = "" .Locked = True
30、 End With With Text2 .SetFocus .Text = ""
31、60; .IMEMode = 1 End With End Sub Private Sub Text2_Change() Text1.Text = Text2.Text End Sub 運行程序后,上面的文本框只能讀不能對里面的內(nèi)容進行修改,插入點放在下面文本框中,同時打開默
32、認(rèn)的漢字輸入法。當(dāng)用戶輸入信息時,上面的文本框也同時顯示出相應(yīng)的內(nèi)容。5.2 命令按鈕控件 命令按鈕控件是Visual Basic應(yīng)用程序中最常用的控件,它提供了用戶與應(yīng)用程序交互的最簡便方式。5.2.1 命令按鈕常用屬性和事件 前面介紹的一些屬性對命令按鈕控件仍適用,即包括: 顏色屬性:Backcolor 等 字體字形屬性:Font、FontBold、FontItalic、FontName、FontSize、FontUnderline等 &
33、#160; 大小和位置屬性:Height、width、Left、Top 其他:Capton、Picture、Enabled、Visible等 另外,命令按鈕還有一些常用或特有的屬性 (1)Name(名稱)屬性 標(biāo)識該控件。默認(rèn)為Command1, Command2,。前綴為“Cmd”。 (2)Default屬性 默認(rèn)按鈕屬性。該屬性值為一個布爾值。當(dāng)選擇True時,表示
34、按鍵盤上的“回車”鍵與用鼠標(biāo)單擊該按鈕效果相同。在一個窗體中,只能有一個命令按鈕的該屬性被設(shè)置為True。默認(rèn)值為False。 (3)Cancel屬性 取消按鈕屬性。該屬性值為一布爾值。當(dāng)設(shè)置為True時,表示按鍵盤上的“Esc”鍵與用鼠標(biāo)單擊該按鈕效果相同。在一個窗體中,只允許有一個命令按鈕的該屬性被設(shè)置為True。默認(rèn)值為False。 (4)Style屬性 風(fēng)格屬性。用來設(shè)置或返回一個值,指定控件的顯示類型。運行期間只讀。該屬性取值有兩個:
35、0; 0vbButtonStandard 默認(rèn)值,標(biāo)準(zhǔn)樣式。在命令按鈕上只能顯示文本(Caption屬性)。 1vbButtonGraphical 圖形格式。表示在命令按鈕上不僅可以顯示文本(Caption屬性),而且還可以顯示圖形 (Picture屬性) 命令按鈕最常用的事件是單擊(Click)事件,當(dāng)使用訪問鍵、回車鍵(Default屬性設(shè)置為True)、Esc鍵 (Cancel屬性設(shè)置為True) 或單擊按鈕時,都會觸發(fā)Click事件。 注意,命令按鈕不能識
36、別雙擊(DblClick)事件。5.2.2 應(yīng)用舉例 例 5-4 模擬聊天室軟件。程序界面設(shè)計如圖5-4(a)所示,其對象的屬性設(shè)置如表5-4所示。要求運行時,焦點在“開始”按鈕上,“發(fā)送”按鈕呈灰色顯示。按鈕回車鍵或單擊“開始”按鈕時,激活“發(fā)送”且設(shè)置為缺省按鈕,同時將插入點移到下面的文本框(Text2)中。當(dāng)用戶輸入信息后,回車或單擊“發(fā)送”按鈕,用戶輸入的內(nèi)容顯示在上面的文本框(Text1)中,同時清空下面的文本框(Text2),如圖5-4(b)所示。 圖5-4 (a)
37、; 圖5-4 (b)圖5-4表5-4 例5-4中各控件的屬性設(shè)置值 編寫初始化及各按鈕的單擊事件過程如下: Private Sub Form_Load() Me.Show Label1.Caption = "
38、;友人" Label1.Alignment = 2 Label2.Caption = "輸入" Label2.Alignment = 2 Text1.Text = ""
39、; Text1.Locked = True Text2.Text = "" CmdStart.Caption = "開始" CmdStart.Default = True
40、60; CmdStart.SetFocus CmdSend.Caption = "發(fā)送" CmdSend.Enabled = False CmdEnd.Caption = "退出"
41、0; CmdEnd.Cancel = True End Sub Private Sub CmdStart_Click() CmdSend.Enabled = True CmdSend.Default = True
42、160; Text2.SetFocus End Sub Private Sub CmdSend_Click() Text1.Text = Text2.Text Text2.Text = "" End Sub &
43、#160; Private Sub CmdEnd_Click() Unload Me End Sub5.3. 框架及選擇按鈕控件 框架(Frame)是一個容器控件,用于將窗體上的對象分組。它不僅提供了視覺上的區(qū)分,也可以起到總體的激活或屏蔽作用。 選擇按鈕控件指的是復(fù)選框按鈕和單選按鈕。在Visual Basic應(yīng)用程序的命令對話框中經(jīng)常使用,可以完成簡單的用戶與應(yīng)用程序間的交互。
44、 前面介紹的大多數(shù)屬性可用在框架控件和復(fù)選框、單選按鈕控件,包括: 顏色屬性:Backcolor、ForeColor等 字體字形屬性:Font、FontBold、FontItalic、FontName、FontSize、FontUnderline等 大小和位置屬性:Height、width、Left、Top 其他:Capton、Picture、Enabled、Visible、Style等 其中
45、Style屬性值不同,復(fù)選框和單選按鈕的外觀不同,如圖5-5所示。圖5-55.3.1 框架 框架控件又可以叫分組框,主要用來對其他控件提供可標(biāo)識的分組,同時可以在功能上進一步分割一個窗體。一個窗體中可以有多個框架分組。 分了將控件分組,首先要繪制出框架并選中,然后再繪制里面的控件,這樣就可以把框架和里面的控件同時移動。如果想把非框架分組成員放入框架中,必須先“剪切”該控件,然后選中框架,再“粘貼”到框架中。 框架的常用屬性 (1)Name屬性
46、; 用來標(biāo)識框架控件。默認(rèn)值為Frame1, Frame2, 。前綴為“Fra”。 (2)Capton屬性 用來設(shè)置分組框上的標(biāo)題名字,如果為空,則分組框為封閉的矩形框。 (3)Enabled屬性 默認(rèn)值為True。若將該屬性設(shè)置為False,程序運行時,分組框標(biāo)題呈灰色顯示,分組框內(nèi)的所有對象均被屏蔽,用戶無法再對它們進行操作。 (4)Visible屬性
47、默認(rèn)值為True。若將其設(shè)置為False,程序運行時,分組框及其內(nèi)部的所有控件都被隱含起來。 框架控件主要用來對其他控件進行分組,雖然可以支持單擊、雙擊等許多鼠標(biāo)事件,但一般沒有必要響應(yīng)框架的事件。5.3.2 復(fù)選框(CheckBox) 復(fù)選框允許用戶從程序提供的多個復(fù)選項中選中一個或多個。當(dāng)復(fù)選框獲得焦點時,選項框標(biāo)題將被虛線框起來,框中顯示對號“”,表明是選定,框中空時,表示清除。復(fù)選框最常使用的屬性有: (1) Name(名稱)屬性 控件的標(biāo)識。
48、默認(rèn)為Check1,Check2,,前綴為“Chk” (2)Value屬性 Value屬性用來返回或設(shè)置復(fù)選框的狀態(tài),其值有三個: 0vbUnchecked 默認(rèn)值,表示該復(fù)選框未被選中。 1vbChecked 表示復(fù)選框處于選中狀態(tài),即控件前面的方框中顯示對號“”。 2vbGrayed 表示復(fù)選框當(dāng)前狀態(tài)不明確。此時控件呈灰色顯示。 復(fù)選框最常用的事件是單擊(Click)事件,當(dāng)
49、使用訪問鍵或單擊按鈕時,都會觸發(fā)復(fù)選框的Click事件。 注意,多個復(fù)選框間不會產(chǎn)生互斥現(xiàn)象,即便是在同一個窗體、框架或圖像框中。 例 5-6 設(shè)計如圖5-6(a)所示,各對象的屬性設(shè)置如表5-6所示。編寫代碼實現(xiàn):單擊一個復(fù)選按鈕,則使文本框中的文本實現(xiàn)或取消該選項功能,如圖5-6(b)所示。 圖5-6 (a)
50、; 圖5-6 (b)表5-6 例5-6中各控件的屬性設(shè)置值 Private Sub Check1_Click() If Check1.Value = 1 Then Text1.FontBold = True Else
51、 Text1.FontBold = False End If End Sub Private Sub Check2_Click() If Check2.Value = 1 Then Text1
52、.FontItalic = True Else Text1.FontItalic = False End If End Sub Private Sub Check3_Click()
53、 If Check3.Value = 1 Then Text1.FontStrikethru = True Else Text1.FontStrikethru = False
54、60; End If End Sub5.3.3 單選按鈕(OptionButton) 單選按鈕通常以按鈕組的形式出現(xiàn),用戶一次只能選定一組中的一個按鈕,當(dāng)某一個被選中時,其他單選按鈕會自動被關(guān)閉,即單選按鈕控件之間是互相排斥的。 一般情況下,直接放到窗體上的所有單選按鈕自動構(gòu)成一組。如果要創(chuàng)建多個按鈕組,那么可將單選按鈕放到框架中或圖像框中。 單選按鈕的常用屬性有Name、Caption和Va
55、lue。 (1) Name(名稱)屬性 標(biāo)識該控件。默認(rèn)名稱為Option1, Option2,。前綴為“Opt”。 (2)Value屬性 設(shè)置或返回單選按鈕的選擇狀態(tài).。當(dāng)該屬性值為True時,表示被選中,控件顯示為“”;否則,表示未被選中,用“”表示。默認(rèn)值為False。 單選按鈕的常用事件是單擊(Click)事件,當(dāng)改變單選按鈕的Value值、通過訪問鍵、按Tab移動焦點或單擊按鈕時,都會觸發(fā)單選按鈕的Clic
56、k事件。但值得注意的是,在一組單選按鈕中只有一個Tab站,即被選中的單選按鈕的TabStop屬性自動設(shè)置為True,而其他單選按鈕的TabStop屬性被設(shè)置為False。此時,用戶可用光標(biāo)方向鍵選中其他的單選按鈕。 例 5-7 繼上例,首先在窗體上添加一組字體單選按鈕組,其屬性設(shè)置見表5-7。然后編寫代碼,使程序運行時可以通過單選按鈕的選擇,完成文本框字體的改變,如圖5-7所示。圖5-7表5-7 例5-7中單選按鈕控件的屬性設(shè)置值 添加代碼如下: Private Sub Option1_
57、Click() Text1.FontName = "楷體_GB2312" End Sub Private Sub Option2_Click() Text1.FontName = "隸書" End Sub Private Sub Option3_C
58、lick() Text1.FontName = "黑體" End Sub5.4 列表選擇控件 列表選擇控件主要包括列表框和組合框。它們都可以在有限的空間內(nèi)為用戶提供大量選項供用戶選擇。前面介紹的大多數(shù)屬性同樣可以用在列表框和組合框,包括: 顏色屬性:Backcolor、ForeColor等 字體字形屬性:Font、FontBold、FontItali
59、c、FontName、FontSize、FontUnderline等 大小和位置屬性:Height、width、Left、Top 其他:Enabled、Visible等 注意,列表框和組合框都不具有標(biāo)題(Caption)屬性。5.4.1 列表框(ListBox) 列表框是事先將一些選項以列表的形式設(shè)置好,在程序運行時顯示出來,供用戶從中選擇一項或多項進行操作,即列表框中的內(nèi)容只能供用戶選擇,不能用鍵盤輸入選擇。當(dāng)列表項內(nèi)容超出所畫列表框控件的區(qū)域時,V
60、isual Basic會自動在列表框控件上添加滾動條。 1常用屬性屬性 (1)Name(名稱)屬性 設(shè)置該控件的標(biāo)識。只能在設(shè)計時設(shè)置,運行時只讀。默認(rèn)值為List1, List2,。前綴為“Lst” (2)ListCount屬性 返回列表框控件中所有列表項的個數(shù)。該屬性設(shè)計時不可用,運行時只讀。格式為: 變量&= 對象.ListCount
61、; 這里的“對象”可以是列表框、組合框及文件系統(tǒng)控件。 (3)List屬性 設(shè)置或返回控件列表部分的項目。該屬性可以在屬性窗口中直接設(shè)置(按“Ctrl+回車”換行,按回車結(jié)束),也可以使用添加方法(AddItrm)在程序運行時添加。 List屬性是一個字符串?dāng)?shù)組,數(shù)組的每一項都是一列表中項目,可以通過下標(biāo)訪問list數(shù)組中的選項,其格式有兩個: 格式1:變量$=對象.List (下標(biāo)) 功能:將下標(biāo)指定的那個列表項文
62、本傳遞給變量或其他控件的文本屬性。 其中,“對象”可以是列表框、組合框及文件系統(tǒng)控件。下標(biāo)是指列表項目的順序號,其值從0開始,即列表框中的第一項下標(biāo)為0,第二項下標(biāo)為1以此類推,最后一項的下標(biāo)值為ListCount-1。 例如,將列表框List1中第三項內(nèi)容顯示在文本框Text1中,其代碼應(yīng)寫為: Text1.Text=List1.List(2) 格式2: 對象.List (下標(biāo)) = 變量$ 功能:用字符型變量(或
63、其他控件的文本屬性)值替換下標(biāo)所指定的列表項內(nèi)容,實現(xiàn)修改列表項。 例如,用文本框Text1中的內(nèi)容替換列表框List1中第二項的內(nèi)容,應(yīng)該執(zhí)行: List1.List(1)=Text1.Text (4)Listlndex屬性 返回或設(shè)置列表框控件中當(dāng)前被選擇的項目的索引值(順序號或是下標(biāo))。該屬性設(shè)計時無效,運行時可讀寫。如果當(dāng)前沒有選擇項目,該屬性值為“-1”,取值范圍為0到ListCount-1。 其中表達式:
64、List1.List (List1.ListIndex),代表當(dāng)前被選擇項目的字符串。 例如,將當(dāng)前列表框List1中被選擇項的文本顯示在文本框Text1中,其代碼為: Private Sub List1_Click() Text1.Text = List1.List(List1.ListIndex) End Sub 同樣,要將文本框Text1中的內(nèi)容替換列表框List
65、1中選中項應(yīng)該執(zhí)行: Private Sub Command1_Click() List1.List(List1.ListIndex) = Text1.Text End Sub (5)Text屬性 返回選中項文本。表達式“List1.Text”等效于表達式“List1.List (List1.ListIndex)”,但是,不能直接修改Text屬性,即該屬性設(shè)計時不可用,
66、運行時只讀。 如上例,將當(dāng)前列表框List1中被選擇項的文本顯示在文本框Text1中的代碼又可寫為: Private Sub List1_Click() Text1.Text = List1.Text End Sub (6) Sorted屬性 指定列表框控件中的項目是否自動按字母表順序排列。該屬性包括兩個選項:
67、 True-自動排序顯示 False-默認(rèn)值,表示不排序,按列表項的實際輸入順序顯示。 Sorted屬性只能在設(shè)計時用屬性窗口設(shè)置,在程序運行中不能設(shè)置或修改此屬性。 (7) Columns屬性 指定控件是水平滾動還是垂直滾動顯示列表的項目,如果水平滾動,則該屬性決定顯示多少列。它包括兩個選項: 0-(默認(rèn)值) 指定控件中所有的項目呈單列顯示方式,即一個列表項占一行,當(dāng)列表項超過列表框高度時,
68、則自動加上垂直滾動條,用戶垂直滾動瀏覽選擇。 1到n-指定在控件寬度內(nèi)顯示的列數(shù),實現(xiàn)多行多列顯示,此時,列表項先填第列,超出控件高度再填第二列,以此類推。當(dāng)各列的寬度之和超過列表框?qū)挾葧r,將自動在底部增加一個水平滾動條,供用戶水平滾動瀏覽選擇,如圖5-8所示。 注意,列寬等于列表框控件的寬度除以給定的列數(shù)。另外,該屬性只能在設(shè)計時用屬性窗口設(shè)置,不能在運行時將多列變成單列,或?qū)瘟凶優(yōu)槎嗔?。圖5-8列表框多欄屬性 (8) MultiSelect屬性
69、設(shè)置或返回一個值,該值用來確定是否能夠在列表框控件中進行多項選擇以及如何進行多項選擇。它包括三個選項值: 0vbNone 缺省值。表示每次只能選擇一項,如果選擇另一項,則會取消對前一項的選擇。 1vbSimple 簡單多項選擇。表示可以進行簡單的連續(xù)多項的選擇。選擇或取消選擇時,可以用鼠標(biāo)單擊或按空格鍵(用箭頭鍵移動焦點)。 2vbExtended 擴展多項選擇。表示用戶可以通過SHIFT鍵、CTRL鍵選擇取消選擇連續(xù)或不連續(xù)的多項。 圖5-9是列表框
70、的MultiSelect屬性分別設(shè)置為0,1,2時的顯示。圖5-9 MultiSelect屬性為0,1,2 (9)Style屬性 設(shè)置控件的顯示類型和行為。只能在設(shè)計時用屬性窗口設(shè)置,運行時只讀。其值可以設(shè)置為: 0vbStandard (默認(rèn)值)標(biāo)準(zhǔn)方式,即文本項列表方式。 1vbCheckBox 帶復(fù)選框方式。即每一個文本項有前邊都有一個復(fù)選框,可以選擇多項。 注意,列表框的Style屬性設(shè)置為1時,MultiS
71、elect屬性必須為0,并且允許多選。如圖5-10所示。圖5-10 Style屬性 (10) Selected屬性 返回或設(shè)置在列表控件中的一個項的選擇狀態(tài)。該屬性是一個與List 屬性一樣、有相同項數(shù)的布爾值數(shù)組。在設(shè)計時是不可用的。其語法為: 對象.Selected(下標(biāo)) = boolean 其中,對象為列表框或文件列表框;值為True時,表示該項被選中,否則,表示未被選中,默認(rèn)值為False。 (11) Se
72、lCount屬性 返回在列表框控件中被選中項的數(shù)量。如果沒有項被選中,那么SelCount 屬性將返回 0 值。 2常用事件 列表框的主要事件有Click(單擊)和DblClick(雙擊),但一般不直接編寫列表框的單擊或雙擊事件過程,而是通過命令按鈕完成對列表框的操作。例如,單擊命令按鈕,將列表框List中選中項文本顯示在文本框Text1中。 Private Sub Command1_Click()
73、60; Text1.Text = List1.Text End Sub 3常用方法 一般情況下,在程序設(shè)計時僅畫出列表框,設(shè)置好一些屬性,而列表框中的內(nèi)容則是通過程序代碼來設(shè)置。一般是在窗體的加載事件過程中編寫添加列表項方法的代碼定義列表框初始內(nèi)容。 (1)Add1tem方法 該方法用于在控件中添加一項列表項。其語法格式為:
74、; 對象. Add1tem 項目文本 ,索引值 其中,對象為列表框或組合框;索引值為插入項在控件中的位置,缺省時,添加到列表項的尾部。注意,該方法一次只能向表中添加一個項目。 例如,在列表框(List1)的第三個位置后插入“遼寧省”: List1.Add1tem“遼寧省”,3 缺省3,則在尾部追加一個項目“遼寧省”。 需要注意的是,如果缺省索引值,Sorted屬性設(shè)置為True,在添加列表項時
75、自動按列表項內(nèi)容的ASCII編碼順序有序排列所有列表項。否則,按添加時的順序排列項目。 (2)Removeltem方法 對于已有內(nèi)容的列表框,如果某些列表項不需要時,可用Removeltem方法將其刪除。語法格式為: 對象.Removeltem 索引值 其中語法中的各參數(shù)的含義與AddItem方法一致,只是索引值在本方法中是必須的。 例如,清除列表框(List1)中第3條選項: L
76、ist1.RemoveItem 2 另外,要清除列表框(List1)中被選中那一項,應(yīng)執(zhí)行代碼: List1.RemoveItem List1.listIndex (3)Clear方法 該屬性用于清除列表框控件中的所有選項。語法為: 對象.Clear 例 5-8 編寫程序。當(dāng)程序運行時,首先通過窗體的Load事件給列表框設(shè)置三個被選項“清華大學(xué)、北京大學(xué)、上海交大”,然
77、后通過幾個命令按鈕事件將文本框中的內(nèi)容進行添加、修改列表框中所選項,或者刪除列表框中的所選項,見圖5-11所示。圖5-11表5-8 例5-8中各控件的屬性設(shè)置值 該例中各控件的屬性設(shè)置見表5-8。 Private Sub Form_Load() List1.AddItem “清華大學(xué)” List1.AddItem “北京大學(xué)”
78、0; List1.AddItem “上海交大” End Sub Private Sub CmdAdd_Click() Dim colname As String colname = InputBox(“請輸入大學(xué)名稱”, “添加
79、列表項對話框”) List1.AddItem colname End Sub Private Sub CmdEdit_Click() Dim colname As String, oldname As String &
80、#160; oldname = List1.Text colname = InputBox(“請輸入正確的大學(xué)名稱”, “修改選項對話框”, oldname) List1.List(List1.ListIndex) = colname End Sub Private Sub CmdDel_Click()
81、0; List1.RemoveItem List1.ListIndex End Sub Private Sub CndEnd_Click() Unload Me End Sub5.4.2 組合框(ComboBox) 組合框是文本框和列表框的組合,兼有文
82、本框和列表框的特性。用戶即可以像使用列表框一樣,在控件的列表部分選擇一項,若其列表中沒有所需選項,也可以在控件的文本部分用鍵盤輸入。若控件的列表部分中有選項被用戶選中,該選項內(nèi)容自動顯示在控件的文本部分中。 組合框與列表框有許多同名屬性和方法,它們的含義用法都相同,它們包括: List、ListCoun、listIndex、AddItem、Remove、Item及Clear等。另外,組合框中不具有Columns、MultiSelect、Selected和SelCount等屬性,不允許選擇多項。
83、60; 1組合框?qū)傩?#160; (1)Name屬性 用于在代碼中標(biāo)識該控件。默認(rèn)值為Combo1, Combo2, 。前綴為“Cbo” (2)Style屬性 用于確定組合框的三種風(fēng)格,如圖5-12所示。圖5-12 Style 屬性 0vbDropdown Combo (默認(rèn)值)稱為“下拉式組合框”。即可以輸入文本也可以從下拉列表中選擇列表項。 1vbSimple Combo 稱為“簡單組合框
84、”。由一個文本框和一個不能下拉的標(biāo)準(zhǔn)列表框組成,其列表框一直顯示在屏幕上,還可以有垂直滾動條。 2vbDropdown List 稱為“下拉列表框”。僅允許用戶從下拉列表框選擇,不能輸入列表框中沒有的項目。 (3) Text屬性 該屬性值為用戶選中的列表項內(nèi)容或用鍵盤輸入的文本。當(dāng)Style設(shè)置為2(下拉列表框)時,該屬性為只讀屬性,即設(shè)計時不可用。否則,該屬性設(shè)計時、運行時都可使用。 組合框的常用事件是Change、Click、DblClick和鍵盤
85、事件等。 例 5-9 編寫一簡單字體對話框。要求在窗體上添加三個標(biāo)簽、三個組合框、一個框架、一個文本框,如圖5-13所示。窗體及窗體上的控件,它們的名稱屬性都使用默認(rèn)值;左組合框的Style屬性為2,中組合框的Style屬性為1,右組合框的Style屬性為0,表示可輸入字號;窗體、標(biāo)簽、框架的標(biāo)題及文本框中的文本按圖5-13所示設(shè)置。程序運行時,加載各組合框中的選項,并在選中任一選項時,在預(yù)覽文本框中就有所變化。圖5-13 程序代碼: Private Sub Form_Load()
86、60; With Combo1 .AddItem "黑體" .AddItem "宋體"
87、60; .AddItem "楷體_GB2312" .AddItem "隸書" End With With Combo2
88、; .AddItem "常規(guī)" .AddItem "加粗" .AddItem "傾斜"
89、; .AddItem "加粗 傾斜" .Text = "常規(guī)" End With With Combo3
90、 .AddItem 9 .AddItem 12 .AddItem 18 .AddItem 24 &
91、#160; .Text = 12 End With End Sub Private Sub Combo1_Click() Text1.FontName = Combo1.Text End Sub Private Su
92、b Combo2_Click() Select Case Combo2.Text Case "常規(guī)" With Text1 .FontBold = False .FontItalic = False
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題14按要求完成句子練習(xí)-兩年(2021-2022)小升初語文真題匯編
- 2024年影視作品版權(quán)代理與發(fā)行合同
- 2024年度C水利水電工程施工合同典范
- 2024年曲靖c1道路運輸從業(yè)資格證考試
- 2024年呼和浩特客運從業(yè)資格證理論考試答案
- 2024年度供應(yīng)鏈管理合同:某制造業(yè)供應(yīng)鏈管理服務(wù)協(xié)議
- 2024年二手房定金合同中的交易雙方個人信息保密條款
- 連梁可替換的搖擺鋼支撐框架結(jié)構(gòu)抗震性能研究
- 路燈工程各分部分項的施工方案及質(zhì)量保證措施
- 2024年彩妝品牌代理權(quán)協(xié)議
- 2023年齊齊哈爾市招聘警務(wù)輔助人員考試真題及答案
- 南京大學(xué)2013年634有機化學(xué)考研真題
- 語言暴力主題班會課件
- 25題電控工程師崗位常見面試問題含HR問題考察點及參考回答
- 雙塔精餾正常停車雙塔精餾正常停車
- 安徽省A10聯(lián)盟2023-2024學(xué)年高三上學(xué)期11月期中英語試題(含答案解析)
- 北師大版五年級數(shù)學(xué)上冊典型例題系列之第四單元:平行四邊形面積的實際應(yīng)用專項練習(xí)(原卷版)
- 國開2023秋《電子商務(wù)概論》實踐任務(wù)B2B電子商務(wù)網(wǎng)站調(diào)研報告參考答案
- 【教學(xué)能力比賽】建筑CAD-教學(xué)實施報告
- 第四章-草地類型、分布及分區(qū)
- 2023專業(yè)質(zhì)量負責(zé)人聘用合同正規(guī)范本(通用版)
評論
0/150
提交評論