程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB6 >> vb的屬性、方法和事件(三)

vb的屬性、方法和事件(三)

編輯:VB6

為用戶提供選擇的控件

大多數應用程序需要向用戶提供選擇,如簡單的“Yes/No”選項、或者從包含成百個可能性的列表中進行選擇。Visual Basic 包含幾種用於提供選擇的標准控件。下列表格總結了這些控件及其用途。

用CheckBox 選擇單個選項
CheckBox 表明一個特定的狀態是選定 (on) 還是清除 (off)。在應用程序中使用 CheckBox 為用戶提供了“True/False”或“yes/no”的選擇。因為CheckBox 彼此獨立工作,所以用戶可以同時選擇任意多個 CheckBox。例如,在圖 3.9 中,可同時選定粗體和斜體。

CheckBox 應用程序
這個例子使用一個CheckBox 來決定文本用普通字體還是用斜體字顯示。關於此例的工作版本,請參閱應用程序示例Controls.vbp 中的Check.frm。如圖 3.10 所示,此應用程序有一個TextBox,一個Label,一個CommandButton和兩個CheckBox。

下表列出了應用程序中的對象的屬性設置。

選定粗體或斜體時,CheckBox 的 Value 屬性值設置為 1 ,不選定時為 0。缺省 Value 值為 0,所以除非改變 Value 屬性值,否則第一次顯示時不會選定 CheckBox。可以用常量 vbChecked 和 vbUnchecked 表示數值 1 和0。

check box 應用程序中的事件
當單擊 CheckBox 時,會發生 CheckBox 的 Click 事件。此事件過程測試是否選定 CheckBox(即是否 Value = vbChecked)。如果選定,通過設置 Font對象的 Bold 或 Italic 屬性,將文本轉換為粗體或斜體;該 Font 對象是由TextBox 的 Font 屬性返回的。
Private Sub chkBold_Click ()
If ChkBold.Value = vbChecked Then '如果選定。
txtDisplay.Font.Bold = True
Else '如果沒有選定。
txtDisplay.Font.Bold = False
End If
End Sub
Private Sub chkItalic_Click ()
If ChkItalic.Value = vbChecked Then '如果選定。
txtDisplay.Font.Italic = True
Else '如果沒有選定。
txtDisplay.Font.Italic = False
End If
End Sub

用選項按鈕進行選項分組
選項按鈕表示給用戶一組兩個或更多的選擇。但是,不同於 CheckBox,選項按鈕總是作為一組的組成部分工作的;因此,選擇一個選項按鈕就會立即清除該組中的其它按鈕。定義一個選項按鈕組,告訴用戶“這是一組選擇,從中選一個,而且只選一個”。
例如,在圖 3.11 所示的選項按鈕組中,用戶只能在三個選項按鈕中選擇一個。

創建選項按鈕組
直接放在一個窗體中(也就是不在 Frame 或 PictureBox 中)的所有的選項按鈕構成一組。如果想創建別的選項按鈕組,必須將其中一些選項按鈕組放到 Frame 或 PictureBox 中去。
所有在給定的 Frame 中的選項按鈕,組成一個獨立的組,在 PictureBox 中的所有選項按鈕也是如此。用這種方法生成一個獨立的組時,總是要先畫好一個 Frame 或 PictureBox ,然後,將選項按鈕畫到裡面。圖 3.12 顯示了一個具有兩個選項按鈕組的窗體。

在 Frame 中畫了一組選項按鈕後,用戶只能在組內選擇一個選項按鈕。要在 Frame 中為控件分組,請按照以下步驟執行:
1. 在“工具箱”中選擇 Frame 控件,並在窗體上畫出 Frame。
2. 在“工具箱”中選擇 OptionButton 控件,並在 Frame 內畫出控件。
3. 如果還想在 Frame 中增加選項按鈕,重復步驟 2。先畫 Frame ,再在 Frame 上畫每個控件,這樣移動 Frame 時控件會一起移動。如果將已經存在的控件移到 Frame 上,此控件不會和 Frame 一起移動。
注意 如果將已存在的控件分組到一個 Frame 中去,可以選擇這些控件,然後剪貼到 Frame 或 Picture 控件上去。

控件的容器
當控件是獨立的對象時,窗體和控件之間存在著某種父子關系。圖 3.12 表明 選項按鈕怎樣才能包含在一個窗體或一個 Frame 控件中。
要理解容器的概念,首先要把所有的控件都想象為所在窗體的孩子。實際上,大多數控件都支持只讀 Parent 屬性,它的值就是控件所在的窗體。作為孩子,控件決定其在父窗體上的位置。控件的 Left 屬性和 Top 屬性是相對父窗體而言,且控件不能移出父窗體的邊界。移動容器的同時也移動了控件,因此控件與容器的相對位置不變(即控件的 Left 屬性和 Top 屬性不變)。

選定或禁止選項按鈕
一個選項按鈕可以用以下方法選擇:
1.在運行期間用鼠標單擊選項按鈕。
2.用Tab鍵定位到選項按鈕組,然後在組內使用方向鍵(箭頭鍵)定位選項按鈕。
3.用代碼將它的 Value 屬性設置為 True:optChoice.Value = True
4.使用在 Label 的標題中指定的快捷鍵。
5.要使某個按鈕成為選項按鈕組中的缺省按鈕,只要在設計時將其 Value屬性設置成 True。它保持被選中狀態,直到用戶選擇另一個不同的選項按鈕或用代碼改變它。
要禁用選項按鈕,將其 Enabled 屬性設置為 False。程序運行時,若此選項按鈕變灰,表示無法選取此選項按鈕。

Options 應用程序
圖 3.13 所示的窗體使用選項按鈕為一台計算機選擇處理器類型和操作系統。當用戶在組內選擇了選項按鈕後,Label 的標題就改變,反映當前的選擇。關於此例的工作版本,請參閱應用程序示例Controls.vbp 中的Options.frm。

下表列出了應用程序中對象屬性的設置。

Options 應用程序中的事件
選項應用程序對事件的響應如下:
前三個選項按鈕的 Click 事件為窗體級的 string 變量 strComputer 分配一個相應的描述。
後兩個選項按鈕的 Click 事件為第二個窗體級變量 strSystem 分配一個相應的描述。
這個方法的關鍵就在於使用這兩個窗體級變量,strComputer 和strSystem。這兩個變量具有不同的 string 值,選項按鈕的最後選定就依賴於這些值。
每次選擇新的選項按鈕,其 Click 事件的代碼就更新相應變量的值。
Private Sub opt586_Click()
strComputer = "Pentium"
Call DisplayCaption
End Sub
然後它調用一個名為 DisplayCaption 的過程,此過程把兩個變量連在一起並改變 Label 的 Caption 屬性。
Sub DisplayCaption()
lblDisplay.Caption = "You selected a " &
_strComputer & " running " & strSystem
End Sub
使用子過程是因為改變 Caption 屬性的過程對所有五個選項按鈕來說基本是一樣的,只不過變量的值因情況而異。這就可以避免在每個 Click 事件中重復同樣的代碼。
詳細信息 變量和子過程將在第五章“編程基礎”中討論。

使用 ListBox 和 ComboBox
ListBox 和 ComboBox 為用戶提供了選擇。按照缺省規定,選項以垂直單列方式顯示,也可以設置成多列方式。如果項目數量超過 ComboBox 或ListBox 所能顯示的數目,ScrollBar 自動出現在控件上。於是用戶可以在列表中上下左右滾動。圖 3.14 為一個單列 ListBox。

ComboBox 兼有 TextBox 和 ListBox 兩者的功能。該控件允許用戶通過鍵入文本或選擇列表中的項目來進行選擇。圖 3.15 為一個ComboBox。

與其它含有單值的控件相反,例如 Label 的 Caption 屬性或 TextBox 的text 屬性,ListBox 和 ComboBox 含有多個值或值的集合。在運行時用內置的方法增加、刪除及保持集合中的值。要將幾條項目添加到名為 List1 的ListBox 中,其代碼如下: List1.AddItem "Paris"
List1.AddItem "New York"
List1.AddItem "San Francisco"
ListBox 和 ComboBox 是在有限空間為用戶提供大量選項的有效方法。
詳細信息 關於 ListBox 和 ComboBox 控件的詳細信息,請參閱第七章“使用 Visual Basic 的標准控件”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved