5.5 滾動條與按鈕控件
|
屬性 |
描述 |
Alignment |
取值為1時,以三維效果繪制控制 |
BackColor、ForeColor |
分別設(shè)置控制的背景色與文字圖片的前景色 |
Cancel |
用來指示窗體中命令按鈕是否為取消按鈕 |
Caption |
設(shè)置按鈕上顯示的文字 |
DisabledPicture |
設(shè)置命令按鈕無效時顯示的圖像 |
DownPicture |
當(dāng)命令按鈕被按下時顯示的圖像 |
Default |
返回或設(shè)置一個值,以確定控件是否為窗體的默認命令按鈕 |
Enabled |
確定控件是否能夠?qū)τ脩舢a(chǎn)生的事件做出反應(yīng),為False時,不能反應(yīng) |
Picture |
返回或設(shè)置控件中要顯示的圖片,當(dāng)Style=1時,顯示圖片 |
Style |
指示控件的顯示類型,Style=0,按鈕上顯示文字,Style=1,按鈕上顯示圖形 |
ToolTipText |
返回或設(shè)置一個工具提示 |
Value |
是否選擇該按鈕 |
設(shè)置Caption屬性時,如果某個字母前加上“&”,則程序運行時標(biāo)題中該字母帶下劃線,且?guī)聞澗€的字母為快捷鍵,按住Alt鍵和帶下劃線的字符就可把焦點移動到相應(yīng)的控件上并操作該按鈕。
2.按鈕控件事件
(1)Click事件
單擊命令按鈕會發(fā)生Click事件。在代碼中也可以觸發(fā)命令按鈕控件,使之在程序運行時自動按下。方法是把Value屬性設(shè)置為True:
CancelButton.Value=True
(2)GotFocus事件。
當(dāng)使用Tab鍵切換,或單擊對象,或在代碼中用SetFocus方法使命令按鈕獲得焦點時,發(fā)生GotFocus事件。
(3)LostFocus事件
當(dāng)對象失去焦點時發(fā)生LostFocus事件,該事件主要用來對更新進行驗證和確認。
3.按鈕控件方法
命令按鈕具有Move和SetFocus等方法。Move方法可移動對象位置,SetFocus方法則可以使命令按鈕獲得焦點。
5.6定時器與框架控件
定時器控件又稱計時器或時鐘控件,用于控制有規(guī)律地定時執(zhí)行指定的工作,適合編寫不需要與用戶進行交互就可直接執(zhí)行的代碼,
在程序運行階段,時鐘控件不可見。
1.屬性
(1)Name屬性
(2)Interval屬性
該屬性設(shè)置或返回兩次Timer事件間的時間間隔,取值范圍在0~64 767之間(包括這兩個數(shù)值),單位為ms(0.001s),表示計時間隔。若將Interval屬性設(shè)置為0或負數(shù),則時鐘停止工作。
60 000ms為1min,如果把Interval屬性設(shè)置為1 000,則表明每秒鐘發(fā)生一個計時器事件。
(3)Enabled屬性
Enabled屬性被設(shè)置為True而且Interval屬性值大于0,則時鐘控件開始工作
Enabled屬性設(shè)置為False,則時鐘控件無效,即計時器停止工作
2.Timer事件
定時器控件只能響應(yīng)Timer事件,當(dāng)Enabled屬性值為True且Interval屬性值大于0時,該事件以Interval屬性指定的時間間隔發(fā)生,需要定時執(zhí)行的操作即放在該事件過程中完成。
【例5.7】Timer控件示例。用計時器可以實現(xiàn)字體的放大,如圖5-13所示。
操作步驟如下。
(1)窗體外觀設(shè)計
在窗體上畫一個標(biāo)簽,一個計時器
(2)事件過程代碼設(shè)計
“Form1”窗體控件的“Load”事件過程代碼如下:
Private Sub Form_Load()
Label1.FontName="Roman"
Label1.Width=Width
Label1.Height=Height
Timer1.Interval=1000
End Sub
“Timer1”時鐘控件的“Timer1”事件過程代碼如下:
Private Sub Timer1_Timer()
If Label1.FontSize<100 Then
Label1.FontSize=Label1.FontSize*1.2
Else
Label1.FontSize=10
End If
End Sub
(3)運行程序
用框架可以在同一窗體中建立幾組相互獨立的單選按鈕;可以把不同的對象放在一個框架中,框架提供了視覺上的區(qū)分和總體的激活。
在窗體上創(chuàng)建框架及其內(nèi)部控件對象時,必須先創(chuàng)建框架,然后在其中創(chuàng)建控件對象。
1.框架的主要屬性
(1)Caption屬性
(2)Enabled屬性
(3)Visible屬性
2.框架事件
框架常用的事件是Click和DblClick。
同一個窗體上建立幾組相互獨立的單選按鈕時,則必須通過框架為單選按鈕分組,使得在一個框架內(nèi)的單選按鈕為一組,每個框架內(nèi)的單選按鈕的操作不影響其他組的按鈕。
【例5.8】Frame控件示例。設(shè)計如圖5-14所示的窗體應(yīng)用程序,通過框架分組單選按鈕設(shè)置字體類型和顏色。
操作步驟如下:
(1)窗體外觀設(shè)計
在窗體上畫一個文本框,畫兩個框架,每個框架內(nèi)畫3個單選按鈕,設(shè)置基本屬性。
(2)編寫事件代碼
“Form1”窗體控件的“Load”事件過程代碼如下:
Private Sub Form_Load()
TextDisplay.FontSize = 12
End Sub
“opred”單選按鈕控件的“Click”事件過程代碼如下:
Private Sub opred_Click()
TextDisplay.ForeColor = &HFF&
End Sub
“opblue”單選按鈕控件的“Click”事件過程代碼如下:
Private Sub opblue_Click()
TextDisplay.ForeColor = &HFF0000
End Sub
“opgreen”單選按鈕控件的“Click”事件過程代碼如下:
Private Sub opgreen_Click()
TextDisplay.ForeColor = &HFF00&
End Sub
“Roman”單選按鈕控件的“Click”事件過程代碼如下:
Private Sub Roman_Click()
TextDisplay.FontSize = 18
TextDisplay.FontName = "Roman"
End Sub
“Modern”單選按鈕控件的“Click”事件過程代碼如下:
Private Sub Modern_Click()
TextDisplay.FontSize = 16
TextDisplay.FontName = "Modern"
End Sub
“Courier”單選按鈕控件的“Click”事件過程代碼如下:
Private Sub Courier_Click()
TextDisplay.FontSize = 14
TextDisplay.FontName = "Courier"
End Sub
(3)執(zhí)行程序
5.7 焦 點 和 Tab 鍵 順 序
l 焦點是接收用戶鼠標(biāo)或鍵盤輸入的能力。當(dāng)對象具有焦點時,可接收用戶的輸入。
l 在運行時用戶通過鼠標(biāo)單擊或者按Tab鍵切換來轉(zhuǎn)移焦點外,還可以使用控件的SetFocus方法來轉(zhuǎn)移焦點。例如:Text1.SetFocus
1. GotFocus事件
當(dāng)焦點從其他地方轉(zhuǎn)移到此控件時發(fā)生,通常用來進行文本的選擇、初始化等。
2.LostFocus事件
當(dāng)焦點從控件轉(zhuǎn)移開的時候發(fā)生。
l 所謂Tab順序,就是按Tab鍵時焦點在各個控件上移動的順序。每個窗體都有自己的Tab順序,當(dāng)窗體上有多個控件時,系統(tǒng)會對這些控件分配一個Tab順序,通常其順序與控件建立的順序相同。
l 設(shè)置控件的Tablndex屬性可以改變它的Tab順序。控件的Tablndex屬性決定了它在Tab鍵順序中的位置。按照缺省規(guī)定,第一個建立的控件其Tablndex值為0,第二個的Tablndex值為1,依次類推。
l 對于能獲得焦點且有效的控件,如果不希望按Tab鍵時能選中該控件,則可以將該控件的TabStop屬性設(shè)為False,這樣便可將此控件從Tab順序中刪除。
小結(jié):
控件是Visual Basic中預(yù)先定義好的、程序中能夠直接使用的對象。每種控件都有自己的屬性、事件和方法,每種控件都可以完成一種特定的任務(wù)。這些控件對象都以形象的圖標(biāo)形式出現(xiàn)在工具箱中,以便于編程時使用。本講系統(tǒng)和深入地介紹了滾動條、命令按鈕、定時器與框架這些常用標(biāo)準(zhǔn)控件的屬性、方法及事件及其在程序設(shè)計中的具體應(yīng)用。最后介紹了焦點和Tab鍵順序的概念和關(guān)系。
作業(yè):
1、命令按鈕的名稱屬性和Caption屬性有何不同?
2、為什么要用框架將若干單選按鈕組合在一起?
3、給出兩種使時鐘控件停止計時的方法(Interval賦值為0,或?qū)?SPAN lang=EN-US>Enabled賦值為False)。
|