这是我的代码,当我单击ListView中的项目时,它会尝试设置ComboBox的文本。
Private Sub ListView1_Click()
If ListView1.ListItems.Count > 0 Then
Text1.Text = ListView1.ListItems(ListView1.SelectedItem.Index).Text
Text2.Text = ListView1.ListItems(ListView1.SelectedItem.Index).ListSubItems(1).Text
Sql = "SELECT A.AID,B.LOC_NAME,C.SNAME FROM ASSET A,LOCATION B,SUPPLIER C WHERE "
Sql = Sql + "A.LOC_ID=B.LOC_ID AND A.SUP_ID=C.SUP_ID AND AID=" & Text1.Text
RS.Open Sql, CON, 1, 2
COM1
Combo1.Text = RS!LOC_NAME //combo with style - 2
COM5
Combo5.Text = RS!SNAME //combo with style - 2
End If
End Sub
Private Sub COM5()
If Combo5.ListIndex = -1 Then
For I = 0 To Combo5.ListCount - 1
Combo5.ListIndex = I
Next
End If
End Sub
Private Sub COM1()
If Combo1.ListIndex = -1 Then
For I = 0 To Combo1.ListCount - 1
Combo1.ListIndex = I
Next
End If
End Sub
但是,当我点击ListView1时,我收到此错误:
'text'属性为只读
任何人都可以解释原因吗?
答案 0 :(得分:1)
对于具有下拉列表样式的组合框,如果该项目已存在,则只能选择.text
项目,如果combo1.text = "xxx"
为"xxx"
,则Private Sub SelectOrAddToCombo(combo As ComboBox, value As String)
Dim i As Long
With combo
For i = 0 To combo.ListCount - 1
If StrComp(.List(i), value, vbTextCompare) = 0 Then
combo.ListIndex = i
Exit Sub
End If
Next
.AddItem value
.ListIndex = .NewIndex
End With
End Sub
...
SelectOrAddToCombo Combo1, RS!LOC_NAME
SelectOrAddToCombo Combo5, RS!SNAME
错误不在列表中。
要根据存在情况选择或添加,您可以;
COM5()
目前尚不清楚COM1()
/ ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
例程的重点是什么。
对于列表视图,而不是单击查看
ListView1.SelectedItem
事件通知您点击的项目,无需Nothing
(如果{{1}}可能会导致错误。)
答案 1 :(得分:0)
是的,你必须在设置.text propierty之前用数组填充组合框(使用additem值),如果要在组合框中设置的文本没有在数组中退出,则会出现此错误