For i = 0 To 窗口A.ComboBox1.ListCount - 1
  If "123" = 窗口A.ComboBox1.List(i) Then
    窗口A.ComboBox1.ListIndex = i
    Exit For
  end If
Next上面功能应该怎样实现啊!!!

解决方案 »

  1.   

    思路:
    用FindWindow获得ComboBox1的句柄,然后再获得ComboBox1里的所有项的数据,然后进行比较发现有"123"的话就用SendMessageByString向ComboBox1发送"123"
      

  2.   

    先用findwindowex找到ComboBox控件的句柄,然后用sendmessage依次发送CB_FINDSTRING (获取相应的index)CB_SELECTSTRING (使相应项的item被选中),下面我以自己窗体中的控件为例,说明一下:
    Option ExplicitPrivate Const CB_FINDSTRING = &H14CPrivate Const CB_SELECTSTRING = &H14DPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Sub Command1_Click()
        Dim i As Long
        i = SendMessage(Combo1.hwnd, CB_FINDSTRING, 0&, ByVal "123")
        If i = -1 Then Exit Sub
        SendMessage Combo1.hwnd, CB_SELECTSTRING, 0&, ByVal "123"
    End SubPrivate Sub Form_Load()
        Dim i As Long
        For i = 1 To 200
            Combo1.AddItem CStr(i)
        Next
    End Sub
      

  3.   

    这个问题CSDN上很多了,建议LZ提问前先查查CSDN论坛,这样加深印象偶仅仅是来蹭点分的