VB教程:?jiǎn)芜x按鈕(OptionButton)

字號(hào):

4、單選按鈕(Option Button)
    作用:顯示一個(gè)可打開/關(guān)閉的選項(xiàng)
    注意:同一組只可選中一個(gè)選項(xiàng)。
    Option Button單選鈕控件總是以組的形式出現(xiàn)的。在一組Option Button控件中,總是只有一個(gè)單選鈕處于選中狀態(tài);如果選中了其中的一個(gè),其余單選鈕則自動(dòng)清除為非選中狀態(tài)。
    (1)常用屬性
    Caption——指定單選鈕所表示的選擇項(xiàng)的內(nèi)容。
    value——返回或設(shè)置單選鈕的狀態(tài)。
    value= true '選中了控件代表的項(xiàng)
    value= false '沒有選中控件代表的項(xiàng)
    Enabled——表示單選鈕當(dāng)前是否可用。其值為True時(shí),表示單選鈕為正??捎脿顟B(tài);為False時(shí).表示單選鈕處于不可用狀態(tài),此時(shí)選擇項(xiàng)內(nèi)容變?yōu)榈窨虪睢?BR>    (2)例子:
    [例1]:顯示兩個(gè)數(shù)的四則運(yùn)算結(jié)果。見教材P118。
    Private Sub Form_Load()
    Option1(0).Value = True '選中第一個(gè)選項(xiàng)。
    Label2.Caption = 56 * 89
    End Sub
    --------------------------------------------------------------------------------
    Private Sub Option1_Click(Index As Integer)
     Select Case Index
     Case 0
     Label2.Caption = 56 * 89 '選擇乘法
     Case 1
     Label2.Caption = 56 / 89 '選擇除法
     Case 2
     Label2.Caption = 56 + 89 '選擇加法
     Case 3
     Label2.Caption = 56 - 89 '選擇減法
     End Select
    End Sub
    注意:
    本例中,單選按鈕可采用復(fù)制的方法獲得一組。
    當(dāng)單選按鈕的value設(shè)為true時(shí),相當(dāng)于進(jìn)行click事件。
    [程序演示] [程序下載]
     Select Case語(yǔ)句是VB提供的又一種條件語(yǔ)句,用來實(shí)現(xiàn)多分支選擇(見教材第三章)。
     Select Case語(yǔ)句的一般格式如下:
     Select Case 變量
     Case 值 1
     語(yǔ)句 1
     Case 值 2
     語(yǔ)句 2
     .
     .
     .
     Case 值 n
     語(yǔ)句 n
     [Case Else
     語(yǔ)句 n+1]
     End Select
     Select Case中的“變量”稱為Case變量,它可以是一個(gè)表達(dá)式,通常使用一個(gè)變量或常量,也可以是數(shù)值型或字符串型。在每個(gè)Case子句中指定一個(gè)值,當(dāng)Case變量的值符合某個(gè)Case子句指定值的條件時(shí),就執(zhí)行該Case子句中的語(yǔ)句,然后跳到End Select,從End Select出口。這里的“語(yǔ)句”可以是一個(gè)語(yǔ)句,也可以是一組語(yǔ)句。如果變量的值與任何一個(gè)Case子句都不匹配,就執(zhí)行Case Else子句后面的“語(yǔ)句 n+1”,然后從End Select出口(如果程序中,不涉及到這種情況,[]中的程序段可以不要)。
    [例2]:將已知的兩個(gè)數(shù)據(jù)進(jìn)行:乘法、除法、加法、減法運(yùn)算。
    添加四個(gè)單選按鈕、四個(gè)標(biāo)簽、兩個(gè)文本框。
    Dim result As Double
    Private Sub Option1_Click()
     If Option1.Value Then
    Label1.Caption =""
    result = Val(Text1.Text) * Val(Text2.Text) 'val()將字符串轉(zhuǎn)換為數(shù)值型(因?yàn)槲谋究蛑唤邮茏址蛿?shù)據(jù),而程序要求Text1中的數(shù)據(jù)參加數(shù)值運(yùn)算)
    Label1.Caption = Str(result) ' str()將數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符串類型
    End If
    End Sub
    --------------------------------------------------------------------------------
    Private Sub Option2_Click()
    If Val(Text2.Text) = 0 Then
    MsgBox "被除數(shù)不能為零,請(qǐng)重新輸入!" 'MsgBox語(yǔ)句
    Else
    If Option2.Value Then
     Label1.Caption =""
     result = Val(Text1.Text) / Val(Text2.Text)
     Label1.Caption = Str(result)
    End If
    End If
    end sub
    --------------------------------------------------------------------------------
    Private Sub Option3_Click()
    If Option3.Value Then
    Label1.Caption =""
    result = Val(Text1.Text) + Val(Text2.Text)
    Label1.Caption = Str(result)
    End If
    End Sub
    --------------------------------------------------------------------------------
    Private Sub Option4_Click()
    If Option4.Value Then