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

VisualBasic屬性、方法和事件三

編輯:VB綜合教程

為用戶提供選擇的控件
  
  大多數應用程序需要向用戶提供選擇,如簡單的“Yes/No”選項、或者從包含成百個可能性的列表中進行選擇。VisualBasic包含幾種用於提供選擇的標准控件。下列表格總結了這些控件及其用途。
  
  用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。
  
  checkbox應用程序中的事件
  當單擊CheckBox時,會發生CheckBox的Click事件。此事件過程測試是否選定CheckBox(即是否Value=vbChecked)。如果選定,通過設置Font對象的Bold或Italic屬性,將文本轉換為粗體或斜體;該Font對象是由TextBox的Font屬性返回的。
  PrivateSubchkBold_Click()
     IfChkBold.Value=vbCheckedThen  '如果選定。
    txtDisplay.Font.Bold=True
     Else       '如果沒有選定。
    txtDisplay.Font.Bold=False
     EndIf
  EndSub
  PrivateSubchkItalic_Click()
     IfChkItalic.Value=vbCheckedThen   '如果選定。
    txtDisplay.Font.Italic=True
     Else      '如果沒有選定。
    txtDisplay.Font.Italic=False
     EndIf
  EndSub
  
  用選項按鈕進行選項分組
  選項按鈕表示給用戶一組兩個或更多的選擇。但是,不同於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事件的代碼就更新相應變量的值。
  PrivateSubopt586_Click()
   strComputer="Pentium"
    CallDisplayCaption
  EndSub
  然後它調用一個名為DisplayCaption的過程,此過程把兩個變量連在一起並改變Label的Caption屬性。
  SubDisplayCaption()
  lblDisplay.Caption="Youselecteda"&
  _strComputer&"running"&strSystem
  EndSub
  使用子過程是因為改變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"NewYork"
  List1.AddItem"SanFrancisco"
  ListBox和ComboBox是在有限空間為用戶提供大量選項的有效方法。
  詳細信息關於ListBox和ComboBox控件的詳細信息,請參閱第七章“使用VisualBasic的標准控件”。
  

->

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