更正:
为了使两个COMBOBOX中的TEXT属性同步,(条件是两个COMBOBOX的LISTCOUNT相等)
试过两种方法:
1、单击任意一个COMBOBOX时两COMBOBOX的 LISTINDEX 属性相同来实现,很方便。
2、单击任意 一个COMBOBOX时,COMBO1.TEXT=COMBO1.LIST(COMBO2.LISTINDEX) 会出现死循环(不知是不是递归调用?)导致内存溢出。
  哪位朋友能帮忙解释一下为什么用第二种方法会内存溢出 ?

解决方案 »

  1.   

    你把程序写在combo的哪个事件里了?
      

  2.   

    如果是Change事件的话就好解释,但是CLICK事件的话……
    Option ExplicitPrivate Sub Combo1_Click()
    Combo2.Text = Combo2.List(Combo1.ListIndex)
    End SubPrivate Sub Combo2_Click()
    Combo1.Text = Combo1.List(Combo2.ListIndex)
    End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
    KeyAscii = 0
    Combo1.AddItem Text1.Text
    Combo2.AddItem Text1.Text
    Text1.Text = ""
    End If
    End Sub一点问题都没呀……
      

  3.   

    用下面代码作测试:
    Private Sub Combo1_Click()
    msgbox "Test!",vbokonly,"test"
    Combo2.Text = Combo2.List(Combo1.ListIndex)
    End SubPrivate Sub Combo2_Click()
    msgbox "Test!",vbokonly,"test"
    Combo1.Text = Combo1.List(Combo2.ListIndex)
    End Sub
    会总弹出提示窗口,直到内存溢出(两个COMBOBOX TYPE=2)
    但我把程序改成:
       Private Sub Combo1_Click()
    Combo2.ListIndex = Combo1.ListIndex
    End SubPrivate Sub Combo2_Click()
    Combo1.ListIndex = Combo2.ListIndex
    End Sub
    一切OK!
    请问楼上的“如果是Change事件的话就好解释”WHY?谢谢!
    补充:
      运行环境: Winxp +Vb6+Vs6sp5,系统中还装有.net
      

  4.   

    好象Combo1.Text = Combo1.List(Combo2.ListIndex) 这句话会激活combo1的click事件(type=2),因此可能造成死循环,另外,可以试一试是不是两个combo的tabindex连在一起,也可能是原因.