下面是combo的Private Declare Function SendMessagebyString Lib _ 
"user32" Alias "SendMessageA" (ByVal hWND As Long, _ 
ByVal wMsg As Long, ByVal wParam As Long, _ 
ByVal lParam As String) As Long Private Const LB_FINDSTRINGEXACT = &H1A2    '在 ListBox 中精确查找 
Private Const CB_FINDSTRINGEXACT = &H158    '在 ComboBox 中精确查找 
Private Const LB_FINDSTRING = &H18F        '在 ListBox 中模糊查找 
Private Const CB_FINDSTRING = &H14C        '在 ComboBox 中模糊查找 Private Sub Command1_Click() 
    If SendMessagebyString(Combo1.hWnd, CB_FINDSTRINGEXACT, -1, Combo1.Text) > -1 Then 
        MsgBox "已经存在" 
    Else 
        MsgBox "不存在" 
    End If End Sub 如果 是list怎么判断是否存在?

解决方案 »

  1.   

    SendMessagebyString(List1.hWND, LB_FINDSTRINGEXACT, -1, "XXX")
      

  2.   

    楼上的,语句是什么 ?>-1是存在吗?还有XXX是什么 ?
      

  3.   

    -1
    是default,就是没发现,因为有的话,就是index(0开始)
    xxx是你要找的东西
      

  4.   

    谢谢楼上的,当已经存在的时候,自动选中list1中相应的项,怎么处理?
      

  5.   

    嘿嘿,顶不动了吧!给你答案:
    Private Declare Function SendMessageByString& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String)Private Sub Command2_Click()    Dim i&
        
        'XXX 是要找的文本,全字匹配(字母不区分大小写)
        i = SendMessageByString(List1.hwnd, &H1A2, 0, "XXX")
        If (i >= 0) Then
            List1.ListIndex = i     '选定找到的项目
        Else
            MsgBox "没有找到该项目!" & i, 64
        End IfEnd Sub
      

  6.   

    上面的:MsgBox "没有找到该项目!" & i, 64
     应为:MsgBox "没有找到该项目!", 64测试后忘记了删除 & i