所以我需要以下代码中的帮助:
Private Sub cbxkelas_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxkelas.SelectedIndexChanged
Try
Dim kel As String
kel = cbxkelas.SelectedText.FirstOrDefault()
If kel = "2" Or "4" Or "6" Then
cbxsemes.SelectedItem = "Genap"
Else
cbxsemes.SelectedItem = "Ganjil"
End If
cbxsemes.Items.Clear()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
我试图获得cbxsemex(组合框)值取决于在cbxkelas(组合框)第一个字符的选择,但当我在cbxkelas选择“1psi2”时,它仍然在cbxsemes中显示“Genap”。
答案 0 :(得分:1)
您已将Option Strict设为OFF 此设置允许使用类似于此行
的语法 If kel = "2" Or "4" Or "6" Then
要传递,但在你的上下文中没有任何意义,因为该行被评估为
If (kel = "2") Or ("4" Or "6") Then
并且,在Option Strict设置为OFF的情况下,会发生从字符串“4”和“6”到布尔值的自动转换。当然,这种转换会返回true作为结果(如果字符串为“0”,您将得到错误)
你的代码应该是
If kel = "2" Or kel = "4" Or kel = "6" Then
所以,我的建议是将Option Strict更改为ON。可能在此之后,你的程序将无法正确编译,但它也会突出显示许多其他地方,如果你真的得到预期的结果,你应该仔细查看。
仍然不清楚为什么要从刚刚设置所选项目的同一个组合框中删除所有项目。
答案 1 :(得分:0)
你的病情必须改为
If kel = "2" Or kel = "4" Or kel = "6" Then