我有一个多选列表框(nameDatabase),当我选择一个选项时,会出现一个组合框,我可以使用它。但是,当我取消选择它时,组合框在取消选择后保持可见。
这就是我目前必须使它们可见并将所选项目放置到文本框的方法:
Private Sub nameDatabase_AfterUpdate()
Dim strEng As String
Dim varItem As Variant
For Each varItem In Me.nameDatabase.ItemsSelected
strEng = strEng & ", " & Me.nameDatabase.ItemData(varItem)
Next
If Len(strEng) > 0 Then
strEng = Mid(strEng, 2)
End If
Me.TestBox = strEng
If nameDatabase.Column(Value) = "A" Then
codeJBox.Visible = True
ElseIf nameDatabase.Column(Value) = "B" Then
codeSBox.Visible = True
ElseIf nameDatabase.Column(Value) = "C" Then
codePBox.Visible = True
codeABox.Visible = True
End If
End Sub
我试图让一个文本框包含选择,例如,如果“A”不在其中,它就会消失,尽管它不起作用,或者我做错了什么。我有一种感觉,我错过了一些简单的事情,让组合框消失,而且我想太多了。
您最初可以将它们全部隐藏:
codeJBox.Visible = False
codeSBox.Visible = False
codePBox.Visible = False
codeABox.Visible = False
If nameDatabase.Column(Value) = "A" Then
codeJBox.Visible = True
ElseIf nameDatabase.Column(Value) = "B" Then
codeSBox.Visible = True
ElseIf nameDatabase.Column(Value) = "C" Then
codePBox.Visible = True
codeABox.Visible = True
End If
这应该适合您的用例:
Private Sub nameDatabase_Change()
Dim Value As Long
'Value = 1 'was for testing
If nameDatabase.Text <> "" Then
codeJBox.Visible = nameDatabase.Column(Value) = "A"
codeSBox.Visible = nameDatabase.Column(Value) = "B"
codePBox.Visible = nameDatabase.Column(Value) = "C"
codeABox.Visible = nameDatabase.Column(Value) = "C"
Else
codeJBox.Visible = False
codeSBox.Visible = False
codePBox.Visible = False
codeABox.Visible = False
End If
End Sub
如果未选择任何内容,则 4 会变为不可见,而当键入某些内容时,只会使您需要的内容可见。如果有不清楚的地方请告诉我。