在 Visual Basic 中,單選與復(fù)選按鈕控件主要作為選項提供給用戶選擇。不同的是,在一組選擇按鈕中,單選控件只能選擇一個,其他單選控件自動變?yōu)槲幢贿x中狀態(tài);而在一組復(fù)選按鈕中,可以選定任意數(shù)量的按鈕。
一、單選控件(OptionButton)與復(fù)選控件(CheckBox)的主要屬性:
單選控件默認名稱為 OptionX(X為阿拉伯數(shù)字 1、2、3,等等),起名規(guī)則為 OptX(X為用戶自定義名字,如 OptRed、OptArial,等等);復(fù)選控件默認名稱為 CheckX(X為 1、2、3,等等),起名規(guī)則為 ChkX(X為用戶自定義名字,如 ChkName、ChkRed ,等等)。
在 VB 操作界面中,單選控件與復(fù)選控件的圖標如圖一所示:
圖一
以前講到的大多數(shù)屬性都適用于單選與復(fù)選控件,包括:Caption、Enabled、Font(FontBold、FontItalic、FontName,等等)、Name、Height ,等等,此處不再贅述。
Value 屬性是單選與復(fù)選控件最主要的屬性,但單選與復(fù)選控件的 Value 值有些微的差別。
單選控件:
選中時,Value 值為 True ;未被選中,Value 值為 False 。
復(fù)選控件:
選中時,Value 值為 1 ;未被選中,Value 值為 0 ;禁止對該按鈕進行選擇, Value 值為 2 。
請大家注意,單選控件與復(fù)選控件的 Value 值是不同的,而這是初學(xué)者最容易混淆的。
二、單選按鈕與復(fù)選按鈕的事件:
這兩種控件最主要的事件是 Click 事件,當選中時,Value 值變?yōu)?True 或者 1 ,控件也自動變?yōu)檫x中狀態(tài)。
三、單選按鈕程序舉例:
有如圖二這樣一個程序:
圖二
文本框(TxtContent)顯示預(yù)設(shè)的字樣;單選按鈕一(OptArial),單擊此按鈕可以將文本框里顯示的字樣改變成 Arial 字體;單選按鈕二(OptModern),單擊此按鈕能將文本框里顯示的字樣改變成 Modern 字體。
1、單選按鈕一:
Private Sub OptArial_Click()
TxtContent.FontName = "Arial"
End Sub
2、單選按鈕二:
Private Sub OptModern_Click()
TxtContent.FontName = "Modern"
End Sub
四、復(fù)選按鈕的判斷過程:
復(fù)選按鈕的使用跟單選按鈕相似,但由于一次可以選擇多個復(fù)選按鈕,所以復(fù)選按鈕的選擇比單選按鈕多了一個判斷過程。
這個判斷過程在 VB 中可以用 If···Then···ElseIf···End If 語句完成。
If···Then···ElseIf···End If 是 VB 中的塊結(jié)構(gòu)條件語句,主要用來針對不同的情況,讓應(yīng)用程序做出不同的反應(yīng)。
語句功能如下:
If 假設(shè)情況一 Then
假設(shè)情況一成立時執(zhí)行的語句塊一
[ElseIF 假設(shè)情況二 Then
假設(shè)情況二成立時執(zhí)行的語句塊二]
[ElseIf 假設(shè)情況三 Then
假設(shè)情況三成立時執(zhí)行的語句塊三]
······
[Else
所有條件都不成立時要執(zhí)行的語句塊]
End If
上面的語句塊含義為:如果“情況一”成立,則執(zhí)行“語句塊一”;否則如果“情況二”成立,則執(zhí)行“語句塊二”······;如果所有情況都不成立,則執(zhí)行 Else 之后的語句塊并最后跳出判斷過程。
例:假設(shè)輸入學(xué)生成績(Score),如果分數(shù)小于 60 ,標簽(LblShow)顯示“成績不及格”;如果分數(shù)大于 90 ,標簽顯示“成績優(yōu)秀”;如果分數(shù)介于兩者之間,標簽顯示“成績優(yōu)良”。
If Score < 60 Then
LblShow.Caption = "成績不及格"
ElseIf Score > 90 Then
LblShow.Caption = "成績優(yōu)秀"
Else
LblShow.Caption = "成績優(yōu)良"
End If
有幾點必須加以注意:
(1)、在上面的語句塊中,ElseIf 之間沒有空格,如果有空格即 Else If ,塊結(jié)構(gòu)則不成立。Else If 這種形式只能在單行結(jié)構(gòu)條件語句中成立,而不能在塊結(jié)構(gòu)條件中成立。
(2)、執(zhí)行語句塊的程序代碼不能緊跟 Then ,必須放到下一行中,這是塊狀結(jié)構(gòu)的規(guī)定。
(3)、在塊結(jié)構(gòu)判斷語句中,ElseIf 子句的數(shù)量沒有限制,可以根據(jù)需要加入任意多個 ElseIf 子句。
(4)、ElseIf 與 Else 都是可選的,最簡單的判斷語句塊形式如下:
If 條件 Then
要執(zhí)行的語句塊
End If
如:If Score < 60 Then
LblShow.Caption = "成績不及格"
End If
(5)、塊結(jié)構(gòu)語句必須以 If 開始,以 End If 結(jié)束。
五、復(fù)選按鈕舉例:
上面我們學(xué)習(xí)了復(fù)選按鈕的判斷過程,現(xiàn)在進入實例學(xué)習(xí)。 有如圖三這樣一個應(yīng)用程序:
圖三
文本框(TxtContent)顯示預(yù)設(shè)的字樣;復(fù)選按鈕一(ChkBold)可以將文本框里面的字變?yōu)榇煮w;復(fù)選按鈕二(ChkItalic)可以將文本框里面的字變?yōu)樾斌w;復(fù)選按鈕三(ChkUnderline)可以給文本框里面的文字加上下劃線。
復(fù)選按鈕一:
Private Sub ChkBold_Click()
If ChkBold.Value = 1 Then
TxtContent.FontBold = True
Else
TxtContent.FontBold = False
End Sub
復(fù)選按鈕二:
Private Sub ChkItalic_Click()
If ChkItalic.Value = 1 Then
TxtContent.FontItalic = True
Else
TxtContent.FontItalic = False
End Sub
復(fù)選按鈕三:
Private Sub ChkUnderline_Click()
If ChkUnderline.Value = 1 Then
TxtContent.FontUnderline = True
Else
TxtContent.FontUnderline = False
End Sub
聯(lián)想:
復(fù)選按鈕是不是非得經(jīng)過這種選擇判斷?能不能如單選按鈕那樣直接使用呢?這是許多初學(xué)者,包括筆者自己,曾經(jīng)感到疑惑的地方。(雖然現(xiàn)在看來它們的區(qū)別是如此之大)
還是上面這個例子,假設(shè)復(fù)選按鈕一不經(jīng)過判斷,而直接在點擊事件中輸入代碼:
Private Sub ChkBold_Click()
TxtContent.FontBold = True
End Sub
那么你會發(fā)現(xiàn),復(fù)選按鈕一經(jīng)點擊就不能取消字體加粗的效果了;而實際上,復(fù)選按鈕一的功能是,點擊一次即選中時,字體加粗;點擊第二次即取消選擇,字體不再加粗;以此類推。
六:知識點:
1、切記,單選按鈕與復(fù)選按鈕的 Value 值是不同的。
單選按鈕:選中時,Value 值為 True ;未被選中時,Value 值為 False 。
復(fù)選按鈕:選中時,Value 值為 1 ;未被選中時,Value 值為 0 ;禁止選擇,Value 值為 2 。
你可以試驗一下,將復(fù)選按鈕的 Value 值分別用 True/False 代替,看一下會出現(xiàn)什么問題。
2、兩種選擇按鈕都針對 Click 事件做出反應(yīng),但單選按鈕比較簡單,只需直接輸入代碼即可;復(fù)選按鈕比較復(fù)雜,需經(jīng)過條件判斷后再做出反應(yīng)。切記!
3、 If···Then···ElseIf···End If ,只是條件判斷方法的一種,以后我們還會學(xué)到其他的方法。
------------------------------- · 相關(guān)文檔瀏覽 · --------------------------------------------------------------------- · 熱門文檔瀏覽 · -------------------------------------