Private Sub cmdFind_Click()
    For i = 1 To listView.ListItems.Count
        If txtFind.Text = listView.ListItems(i).Text Then
            listView.ListItems(i).Selected = True '''''''(这句话没有效果)
            txtFind.Text = ""
            Exit Sub
        Else
            MsgBox "此搜索项目未找到!", vbExclamation, "提示"
            txtFind.Text = ""
            Exit Sub
        End If
    Next i
End Sub

解决方案 »

  1.   

    试了!能执行到listView.ListItems(i).Selected = True ,晕!
    怎么逻辑不对啦?请告诉我好吗?
      

  2.   

    把ELSE里的Exit SUB 这句去掉,
      

  3.   

    还有ELSE里的txtFind.Text = ""这句
      

  4.   

    Private Sub cmdFind_Click()
        For i = 1 To listView.ListItems.Count
            If txtFind.Text = listView.ListItems(i).Text Then
                listView.ListItems(i).Selected = True '''''''(这句话没有效果)
                txtFind.Text = ""
                Exit Sub
            End if
        Next
        MsgBox "此搜索项目未找到!", vbExclamation, "提示"
        txtFind.Text = ""
                
    End Sub
      

  5.   

    Private Sub cmdFind_Click()
        For i = 1 To listView.ListItems.Count
            If txtFind.Text = listView.ListItems(i).Text Then
                listView.ListItems(i).Selected = True '''''''(这句话没有效果)            这里输出一个字符串,debug.print "dksfjlk"看看这个条件是否成立。
                这认为之所以那句话没效果是因为条件不为真造成的。
                txtFind.Text = ""
                Exit Sub
             ELSE
                 MsgBox "此搜索项目未找到!", vbExclamation, "提示"
            End if
        Next            
    End Sub
      

  6.   

    Private Sub cmdFind_Click()    
      For i = 1 To ListView.ListItems.Count
            If Trim(txtfind.Text) = ListView.ListItems(i).Text Then
                ListView.SetFocus
                ListView.ListItems(i).Selected = True '''''''(这句话没有效果)
                txtfind.Text = ""
                Exit Sub
            End If
       Next
       MsgBox "此搜索项目未找到!", vbExclamation, "提示"
       txtfind.Text = ""
      Exit Sub
    End Sub你试试看!
      

  7.   

    设置listview的隐藏选择和多重选择为false(即在listview的属性设置里面去掉相应的勾)
      

  8.   

    给你做了一个例子:
    创建一个项目,然后在Form1中拖入一个listview,一个checkbox,一个commandbutton,一个text,然后复制以下代码到Form1中,然后运行。注意“隐藏选择”的作用。Option ExplicitPrivate Sub Check1_Click()
    ListView1.HideSelection = CBool(Check1.Value)
    End SubPrivate Sub Command1_Click()
        Dim i As Long
        Dim itm As ListItem
        For i = 1 To ListView1.ListItems.Count
            If Text1.Text = ListView1.ListItems(i).Text Then
                ListView1.ListItems(i).Selected = True '''''''(这句话没有效果)
                Text1.Text = ""
                Exit Sub
            End If
        Next i
        MsgBox "没有找到!", vbExclamation
    End SubPrivate Sub Form_Activate()
        Text1.SetFocus
    End SubPrivate Sub Form_Initialize()    Me.BorderStyle = 3
    End SubPrivate Sub Form_Load()
        ListView1.HideSelection = False
        Check1.Caption = "隐藏选择"
        Text1.Text = ""
        Command1.Caption = "查找"
        ListView1.ListItems.Add , , "haha"
        ListView1.ListItems.Add , , "kaka"
        ListView1.ListItems.Add , , "hehe"
        ListView1.ListItems(1).Selected = False
        ListView1.ListItems(2).Selected = False
        ListView1.ListItems(3).Selected = False
    End SubPrivate Sub Form_Resize()
        Me.Move (Screen.Width - 5000) / 2, (Screen.Height - 4000) / 2, 5000, 4000
    End Sub
      

  9.   

    dnvihc(死灵) 
    你刚才写在我下面的程序我试了,在我这里可以执行的。而且还很正确哦。
    可能你得看看你的LISTVIEW的属性和添加节点的问题了。
      

  10.   

    Private Sub cmdFind_Click()
        For i = 1 To listView.ListItems.Count
            If txtFind.Text = listView.ListItems(i).Text Then
                listView.ListItems(i).Selected = True '''''''(这句话没有效果)
                txtFind.Text = ""
                Exit Sub
            End if
        Next
        MsgBox "此搜索项目未找到!", vbExclamation, "提示"
        txtFind.Text = ""
                
    End Sub这个就可以的啊。
      

  11.   

    Private Sub cmdFind_Click()
        For i = 1 To listView.ListItems.Count
            If txtFind.Text = listView.ListItems(i).Text Then
                listView.ListItems(i).Selected = True '''''''(这句话没有效果)
                listview.SetFocus
                txtFind.Text = ""
                Exit Sub
            End if
        Next
        MsgBox "此搜索项目未找到!", vbExclamation, "提示"
        txtFind.Text = ""
                
    End Sub
      

  12.   

    添加一个LISTVIEW、一个TEXTBOX、一个COMMANDBUTTON,属性都使用默认。Dim tmpItem As ListItemPrivate Sub Command1_Click()
    'lvwSubItem:     搜索子标题项目
    'lvwTag:         搜索Tag
    'lvwText:        搜索标题Set tmpItem = ListView1.FindItem(Text1.Text, lvwText)
    If tmpItem Is Nothing Then
      MsgBox "此搜索项目未找到!", vbExclamation, "提示"
      Exit Sub
    End If
    tmpItem.Selected = True
    tmpItem.EnsureVisible
    ListView1.SetFocus
    End SubPrivate Sub Form_Load()
    Me.Width = 4800
    Me.Height = 3600
    ListView1.Move 0, 0, ScaleWidthWith ListView1
      .ColumnHeaders.Add , , "Column1"
      .ColumnHeaders.Add , , "Column2"
      .View = lvwReport
    End With
    Dim i As Integer
    For i = 1 To 100
      Set tmpItem = ListView1.ListItems.Add(i, , "Test" & CStr(i))
      tmpItem.SubItems(1) = CStr(i) & "Test"
    Next iEnd SubPrivate Sub Form_Unload(Cancel As Integer)
    Set tmpItem = Nothing
    End SubPrivate Sub Form_Unload(Cancel As Integer)
    Set tmpItem = Nothing
    End Sub
      

  13.   

    我是这样添加节点的:
        On Error Resume Next
        rst.Open "select * from " & intToStr(strToInt(classID, 1), 6, "E"), con, adOpenDynamic, adLockOptimistic
        rst.MoveFirst
        While Not rst.EOF
            Set item = listView.ListItems.Add(, , Trim(rst!考试名称), 7, 7)
            item.ListSubItems.Add , , Trim(rst!考试说明)
            rst.MoveNext
        Wend
        rst.Close