已经加入listview1里面去了。。但是怎么样他加入一次就独立位一行
我想把每一行都变成一个数据

解决方案 »

  1.   

    用index属性来判断每一行的数据,就象个数组
      

  2.   

    给你个例子。
    Dim itmX As ListItem   'ListItem 变量。
    Dim intCount As Integer   '计数器变量。
    Dim i As Integer
    Dim kl As String'Private Sub Command1_Click()
    'MsgBox CDate(MaskEdBox1.Text)
    'End Sub'Private Sub Command2_Click()
    'Dim a As String
    'Dim c As String
    'Dim d As Date
    'd = Date
    'a = "02-1-1"
    ''c = "dd" + CStr(CDate(a))
    'If d < a Then
    'MsgBox d
    'End If
    'End SubPrivate Sub Form_Load()
       '为 ColumnHeader 对象创建对象变量。
       Dim clmX As ColumnHeader
       '添加 ColumnHeaders。列宽度等于控件宽度
       '除以 ColumnHeader 对象的数目。
        ListView1.ColumnHeaders.Add , , "Company", ListView1.Width / 3
        ListView1.ColumnHeaders.Add , , "Address", ListView1.Width / 3
        ListView1.ColumnHeaders.Add , , "Phone", ListView1.Width / 3
        
       ListView1.BorderStyle = ccFixedSingle  '设置 BorderStyle 属性。
       ListView1.View = lvwReport  '设置 View 属性为报表型。
       Command1.Caption = "&FindItem"   '用 FindItem 选项标注 OptionButton 控件。
          Option2(0).Caption = "Text"
          Option2(1).Caption = "SubItem"
          Option2(2).Caption = "Tag"
          'ListView1.FindItem = 0 '设置 ListView 控件的 FindItem 属性为文本。 kl = "kk"
                Set itmX = ListView1.ListItems.Add()
          intCount = intCount + 1 'Tag 属性计数器递增。
          itmX.Key = kl
          itmX.Tag = intCount
          itmX.Text = "my"
          itmX.Tag = "ListItem " & 1  '用计数器值设置 Tag。
          itmX.SubItems(1) = "kk"  'Address 字段。
          itmX.SubItems(2) = "ll" 'Phone 字段。
          Set itmX = ListView1.ListItems.Add()
          intCount = intCount + 1 'Tag 属性计数器递增。
          itmX.Key = "my1"
          itmX.Tag = intCount
          itmX.Text = "my1"
          itmX.Tag = "ListItem " & 2  '用计数器值设置 Tag。
          itmX.SubItems(1) = "kk1"  'Address 字段。
          itmX.SubItems(2) = "ll1" 'Phone 字段。
          
    End SubPrivate Sub Command1_Click()
       'FindItem 方法。
       '创建名为 intSelectedOption 的整数类型变量
       '来存储选定按钮的索引。
       '创建名为 strFindMe 的字符串变量。使用 InputBox
       '把查找的字符串存储在变量中。使用
       ' FindItem 方法查找字符串。使用 Option1
       '切换决定在何处查找的 FindItem 参数。
       Dim kl1 As String
       Dim intSelectedOption As Integer
       Dim strFindMe As String
       If Option2(0).Value = True Then
            strFindMe = InputBox("Find in " & Option2(0).Caption)
            intSelectedOption = lvwText
       End If
       If Option2(1).Value = True Then
          strFindMe = InputBox("Find in " & Option2(1).Caption)
          intSelectedOption = lvwSubItem
       End If
       If Option2(2).Value = True Then
          strFindMe = InputBox("Find in " & Option2(2).Caption)
          intSelectedOption = lvwTag
       End If   'FindItem 方法返回找到的项目的引用,所以
       '必须创建对象变量并将
       '找到的项目设置给它。
       Dim itmFound As ListItem   'FoundItem 变量。   Set itmFound = ListView1.FindItem(strFindMe, intSelectedOption, , lvwPartial)   '若未找到符合条件的 ListItem 则通知用户并退出。如果
       '找到 ListItem,则使用 EnsureVisible 方法滚动控件,
       '并选定 ListItem。
       kl1 = "kk"
       If itmFound Is Nothing Then  '若没有匹配成功,则通知用户并退出。
          MsgBox "No match found"
          Exit Sub
       Else
           itmFound.EnsureVisible '滚动 ListView 以显示找到的 ListItem。
           itmFound.Selected = True   '选定ListItem。
          '将焦点返回给控件以查看选择。
           ListView1.SetFocus
           ListView1.ListItems(kl1).SubItems(1) = "kkkk"
          'itmX.SubItems(2) = "lly"
       End If
    End SubPrivate Sub ListView1_ItemCheck(ByVal Item As MSComctlLib.ListItem)
    'MsgBox Item
        ListView1.FindItem(Item, , , lvwPartial).Selected = TrueEnd SubPrivate Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
    MsgBox Item
    End SubPrivate Sub ListView1_LostFocus()
       '控件失去焦点后,重新将每个
       ' ListItem 的 Selected 属性设置为 False。
    '   Dim i As Integer
    '   For i = 1 To ListView1.ListItems.Count
    '      ListView1.ListItems.Item(i).Selected = False
    '   Next i
    End Sub
      

  3.   

    msdn有
    copy msdn的
    FindItem 方法示例
    本示例将 Biblio.mdb 数据库中 Publishers 表的内容植入 ListView 控件中。同时也将 FindItem 方法的三个选项植入 ComboBox 控件。一个 CommandButton 包含 FindItem 方法的代码;单击按钮后将提示输入欲搜索的字符串,然后使用 FindItem 方法在 ListView 控件中搜索此字符串。如找到字符串则使用 EnsureVisible 方法滚动控件以显示找到的 ListItem 对象。要试用此例,请将 ListView、ComboBox 及 CommandButton 控件放置在窗体上,并将代码粘贴到窗体的声明部分。运行示例并单击命令按钮。注意 必须使用“工具”菜单的“引用”命令添加 Microsoft DAO 3.0 对象库的引用,否则示例无法运行。Private Sub Form_Load()
       '为 ColumnHeader 对象创建对象变量。
       Dim clmX As ColumnHeader
       '添加 ColumnHeaders。列宽度等于控件宽度
       '除以 ColumnHeader 对象的数目。
       Set clmX = ListView1.ColumnHeaders. _
       Add(, , "Company", ListView1.Width / 3)
       Set clmX = ListView1.ColumnHeaders. _
       Add(, , "Address", ListView1.Width / 3)
       Set clmX = ListView1.ColumnHeaders. _
       Add(, , "Phone", ListView1.Width / 3)
       
       ListView1.BorderStyle = ccFixedSingle  '设置 BorderStyle 属性。
       ListView1.View = lvwReport  '设置 View 属性为报表型。
       Command1.Caption = "&FindItem"
       
       '用 FindItem 选项标注 OptionButton 控件。
          Option1(0).Caption = "Text"
          Option1(1).Caption = "SubItem"
          Option1(2).Caption = "Tag"
          ListView1.FindItem = 0 '设置 ListView 控件的 FindItem 属性为文本。
       End With
       
       '将数据库记录植入 ListView 控件。
       '为数据访问对象创建对象变量。
       Dim myDb As Database, myRs As Recordset
       '设置数据库为 BIBLIO.MDB 数据库。
       Set myDb = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")
       '设置 recordset 为 Publishers 表。
       Set myRs = myDb.OpenRecordset("Publishers", dbOpenDynaset)
       
       '若当前记录不是最后一条记录,则添加 ListItem 对象。
       '使用新对象的引用设置属性。
       '设置 Text 属性为 Name 字段 (myRS!Name)。
       '设置 SubItem(1) 为 Address 字段 (myRS!Address)。
       '设置 SubItem(7) 为 Phone 字段 (myRS!Telephone)。   While Not myRs.EOF
          Dim itmX As ListItem   'ListItem 变量。
          Dim intCount As Integer   '计数器变量。
          '使用 Add 方法添加新的 ListItem 并为新引用设置对象。
          '使用引用设置
          '属性。
          Set itmX = ListView1.ListItems.Add(, , CStr(myRs!Name))
          intCount = intCount + 1 'Tag 属性计数器递增。
          itmX.Tag = "ListItem " & intCount  '用计数器值设置 Tag。      '若 Address 字段不为空,则设置 subitem 1 为此字段。
          If Not IsNull(myRs!Address) Then
             itmX.SubItems(1) = CStr(myRs!Address) 'Address 字段。
          End If
             
          '若 Phone 字段不为空,则设置 subitem 2 为此字段。
          If Not IsNull(myRs!Telephone) Then
             itmX.SubItems(2) = myRs!Telephone  'Phone 字段。
          End If
             
          myRs.MoveNext   '移动到下一条记录。
       Wend
    End SubPrivate Sub Command1_Click()
       'FindItem 方法。
       '创建名为 intSelectedOption 的整数类型变量
       '来存储选定按钮的索引。
       '创建名为 strFindMe 的字符串变量。使用 InputBox
       '把查找的字符串存储在变量中。使用
       ' FindItem 方法查找字符串。使用 Option1 
       '切换决定在何处查找的 FindItem 参数。
       
       Dim intSelectedOption as Integer
       Dim strFindMe As String
       If Option1(0).Value = True then
          strFindMe = InputBox("Find in " & Option1(0).Caption)
          intSelectedOption = lvwText
       End If
       If Option1(1).Value = True then
          strFindMe = InputBox("Find in " & Option1(1).Caption)
          intSelectedOption = lvwSubItem
       End If
       If Option1(2).Value = True then
          strFindMe = InputBox("Find in " & Option1(2).Caption)
          intSelectedOption = lvwTag
       End If   'FindItem 方法返回找到的项目的引用,所以
       '必须创建对象变量并将
       '找到的项目设置给它。
       Dim itmFound As ListItem   'FoundItem 变量。
       
       Set itmFound = ListView1. _
       FindItem(strFindMe, intSelectedOption, , lvwPartial)
       
       '若未找到符合条件的 ListItem 则通知用户并退出。如果
       '找到 ListItem,则使用 EnsureVisible 方法滚动控件,
       '并选定 ListItem。
       If itmFound Is Nothing Then  '若没有匹配成功,则通知用户并退出。
          MsgBox "No match found" 
          Exit Sub
       Else
           itmFound.EnsureVisible '滚动 ListView 以显示找到的 ListItem。
           itmFound.Selected = True   '选定ListItem。
          '将焦点返回给控件以查看选择。
           ListView1.SetFocus
       End If
    End SubPrivate Sub ListView1_LostFocus()
       '控件失去焦点后,重新将每个
       ' ListItem 的 Selected 属性设置为 False。
       Dim i As Integer
       For i = 1 to ListView1.ListItems.Count
          ListView1.ListItems.Item(i).Selected = False
       Next i
    End Sub
      

  4.   

    首先在数据库中建一个表,用于存放"谢谢你的帮助",
    建一新工程,在FROM1中加一个text1 和一个listview1以及一个command1
    然后在代码的通用部分定义:
    dim db as new adodc.connection
    dim re as new adodc.recordset
    dim connstr as string
    dim i,j,sum as integer
    '***************************
    Private Sub Form_Load()
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]
    '下面的语句是用VB+SQL SERVER ,ADO 数据存取方式运行
    '其中ntserver 为你所登录的服务器 hoteldb 为数据库名 user代表表名
    ‘***********************************************
    connstr = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=hoteldb;Data Source=ntserver;Connect Timeout=30"
    If db.State = 0 Then
    db.Open connstr
    re.CursorLocation = adUseClient
    re.Open "select 代表谢谢你的帮助的字段 from users order by id", connstr, adOpenDynamic, adLockOptimistic
    End If
    listview1.view=lvwreport
    End Sub
    Private Sub Command1_Click()
    dim mylist as listitem
    static sum as integer
    '********************************
    '写入数据库
    if re.recordcount-1<0 thenre.addnew
    re.feilds("代表谢谢你的帮助的字段").value=trim(text1.text)
    re.update
    else
    re.movefirst
    re.addnew
    re.feilds("代表谢谢你的帮助的字段").value=trim(text1.text)
    re.update
    re.movenext
    end if
    sum=re.recordcount
    ListView1.ListItems.Clear
    If re.RecordCount <> 0 Then
         re.MoveFirst
        i = 0
        For i = 0 To re.RecordCount - 1
         ListView1.ListItems.Add(,"key"+i ,trim(re.feilds("代表谢谢你的帮助的字段").value )
    re.movenext
    next i
    end if 
    listview1.refresh
    if re.recordcount=sum+1 then
    msgbox"添加成功",vbCritical + vbInformation, "提示" 
    end if
    end sub