我正在尝试选择多个复选框。
所以我想选择2复选框(checkbox1和2)并制作linklabel1.text = Banana 然后3复选框(checkbox1,2和3)并制作linklabel2.text = Apple,总之如果我选择checkbox1,2和3,linklabel1和2将显示更改(香蕉和Apple显示)
这是我的快照
这就是我尝试的,但没有任何事情发生
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
Dim fruit() As String = {"Banana", "Apple", "Orange"}
Select Case fruit.ToString
Case CheckBox1.Checked And CheckBox2.Checked
LinkLabel1.Text = fruit(0)
Case CheckBox1.Checked And CheckBox2.Checked And CheckBox3.Checked
LinkLabel2.Text = fruit(1)
End Select
End Sub
答案 0 :(得分:0)
使用Select Case fruit.ToString
不正确。您想要检查复选框而不是水果字符串。
你应该使用IF语句:
Dim fruit() As String = {"Banana", "Apple", "Orange"}
If CheckBox1.Checked And CheckBox2.Checked Then
LinkLabel1.Text = fruit(0)
End If
If CheckBox1.Checked And CheckBox2.Checked And CheckBox3.Checked Then
LinkLabel2.Text = fruit(1)
End If
这也可以:
Dim fruit() As String = {"Banana", "Apple", "Orange"}
If CheckBox1.Checked And CheckBox2.Checked Then
LinkLabel1.Text = fruit(0)
If CheckBox3.Checked Then
LinkLabel2.Text = fruit(1)
End If
End If
答案 1 :(得分:0)
您的CASE
测试正在将CheckBox1
的值与数组fruit
进行比较。从基本的角度来说,与彼此无关。在SELECT
中指定变量时,必须检查以下CASE
中该变量可能出现的值。
简单来说,这就是SELECT/CASE
的工作原理
Select Case drink
Case "water"
MsgBox("the variable [drink] has the value [water]")
Case "cola"
MsgBox("the variable [drink] has the value [cola]")
End Select
在你的情况下,你做了类似
的事情Select Case drink
Case weather.IsHot
'no logic in comparing [drink] with [weather.IsHot] because
'this is equivellent CASE TRUE/FALSE
Case car.IsRed
'same as above
Case food.IsSalty And phone.IsRinging
'same as above
End Select
因此,您需要修改以使代码正常工作:
If CheckBox1.Checked And CheckBox2.Checked Then
LinkLabel1.Text = fruit(0)
ElseIf CheckBox1.Checked And CheckBox2.Checked And CheckBox3.Checked Then
LinkLabel2.Text = fruit(1)
End
答案 2 :(得分:0)
不确定LinkLabel4如何适应图片......
...但根据你的解释,我会这样做:
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
Dim fruit() As String = {"Banana", "Apple", "Orange"}
Dim LLs() As LinkLabel = {LinkLabel1, LinkLabel2, LinkLabel3}
Dim CBs() As CheckBox = {CheckBox1, CheckBox2, CheckBox3, CheckBox4}
For Each LL As LinkLabel In LLs
LL.Text = ""
Next
If CheckBox1.Checked Then
For i As Integer = 1 To CBs.Length - 1
If CBs(i).Checked Then
LLs(i - 1).Text = fruit(i - 1)
Else
Exit For
End If
Next
End If
End Sub