尝试设置ComboBox控件的文本时出错

时间:2013-03-07 11:30:52

标签: oracle listview vb6 combobox

这是我的代码,当我单击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'属性为只读

任何人都可以解释原因吗?

2 个答案:

答案 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值),如果要在组合框中设置的文本没有在数组中退出,则会出现此错误