listview用find方法好像只能搜索主项(ListItems),有什么办法搜索某一个子项(SubItems)?

解决方案 »

  1.   

    就是说 Listview1.FindItem "abc", , , 0 是查找主项(Listitems)为"abc"的一条记录,但是主项后面还有子项(Sbuitems)(前提是listview1.View =lvwReport ),要查找子项中是否包含"abc"这个字符串应该怎么办?
      

  2.   

    MSDN帮助上已经很清楚了,其中参数Value为lvwSubitem,即可将查找字符串与 ListItem 对象的 SubItems 属性相匹配。另外该方法返回的是ListItem对象引用。如:
    listview1.FindItem "aaa",lvwSubItem,,lvwPartial————————————————————————————————————
     
    FindItem 方法(ListView 控件)
          查找并返回 ListView 控件中 ListItem 对象的引用。语法object.FindItem (string, value, index, match)FindItem 方法的语法包含下面部分:部分 描述 
    object 必需的。对象表达式,其值是 ListView 控件。 
    string 必需的。指定欲查找的 ListItem 对象的字符串表达式。 
    value 可选的。整数或常数,它指定字符串是否与 ListItem 对象的 Text、Subitems 及 Tag 属性相匹配,如设置值中所描述。 
    index 可选的。唯一标识对象集合成员并指定搜索起始位置的整数或字符串。若为整数,其值为 Index 属性值;若为字符串,其值为 Key 属性值。未指定索引时缺省索引为 1。 
    match 可选的。指定项目的 Text 属性与字符串怎样匹配的整数或常数,如“设置值”中所描述。 
    设置值value 的设置值为:常数 值 描述 
    lvwText 0 (缺省)将字符串与 ListItem 对象的 Text 属性相匹配。 
    lvwSubitem 1 将字符串与 ListItem 对象的 SubItems 属性相匹配。 
    lvwTag 2 将字符串与 ListItem 对象的 Tag 属性相匹配。 
    match 的设置值为:常数 值 描述 
    lvwWholeWord 0 (缺省)一个整数或常数,它指定若项目的 Text 属性由所搜索的整字开始时匹配成功。搜索条件非文本时忽略此设置。 
    lvwPartial 1 一个整数或常数,它指定若项目的 Text 属性由所搜索的字符串开始时匹配成功。搜索条件非字符串时忽略此设置。 
    说明如指定文本为搜索条件则可使用 lvwPartial,这样若 ListItem 对象的 Text 属性由所搜索的字符串开始时匹配成功。例如,要查找文本为“Autoexec.bat”的 ListItem,使用下列代码:'创建 ListItem 变量。
    Dim itmX As ListItem
    '设置变量来查找项目。
    Set itmX = ListView1.FindItem("Auto",,,lvwpartial)
      

  3.   

    如果用Lvw1.SelectedItem = Lvw1.FindItem("abc", 1)是在所有子项中查找符合“abc”的条目,但是能不能指定在第几列子项中进行查找呢?
      

  4.   

    从上面的解释来看,并没有说明是第几列。自己写个循环做吧
    for i=1 to lv.listitems.count
      if lv.listitems.item(i).subitem(1)="abc" then
        执行代码
      end if
    next i