ListView1,显示数据表UID中id、name、tel、addr、四个字段的数据
TextBox(1),TextBox(2)、TextBox(3)、TextBox(4),
如何实现:
1.当鼠标单击选中ListView1中某行时
  TextBox(1):显示选中行的id信息
  TextBox(2):显示选中行的name信息
  TextBox(3):显示选中行的tel信息
  TextBox(4):显示选中行的addr信息
2.当用户编辑了TextBox(1)...(4)的信息并点保存按钮时,将修改后的按钮保存到该数据的原位置并刷新ListView1中被修改的记录(仅刷新被修改的,而不是刷新全部)
知者为师,恳请各位赐教。

解决方案 »

  1.   

    Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
       If Item Is Nothing = False Then Exit Sub
       Text1(1).Text = Item.Text
       Text1(2).Text = Item.SubItems(1)
       Text1(3).Text = Item.SubItems(2)
       Text1(4).Text = Item.SubItems(3)   
    End Sub
      

  2.   

    Private Sub Text1_Change(Index As Integer)
       If ListView1.SelectedItem Is Nothing = False Then Exit Sub
       Select Case Index
       Case 1: ListView1.SelectedItem.Text = Text1(1).Text
       Case 2: ListView1.SelectedItem.SubItems(1) = Text1(2).Text
       Case 3: ListView1.SelectedItem.SubItems(2) = Text1(3).Text
       Case 4: ListView1.SelectedItem.SubItems(3) = Text1(4).Text
       End Select
    End Sub
      

  3.   

    还是实现不了,你看看我的代码错在哪里Private Sub CstLv_Click()
      Dim i As Long
      For i = 1 To CstLv.ListItems.Count
      If CstLv.Listtems(i).Selected Then
        CITx(0).Text = CstLv.ListItems(i).Text
      End If
      Next i
    End Sub注:CstLv=Listview,CITx(0)...CITx(n)=TextBox
      

  4.   

    Private Sub Command1_Click()
    x = ListView1.SelectedItem.Index ListView1.ListItems(x).Text = Text(0).Text
    ListView1.ListItems(x).SubItems(1) = Text(1).Text
     ListView1.ListItems(x).SubItems(2) = Text(2).Text
    ListView1.ListItems(x).SubItems(3) = Text(3).Text
    End SubPrivate Sub Form_Load()
    ListView1.ColumnHeaders.Add 1, , "id"
    ListView1.ColumnHeaders.Add 2, , "name"
    ListView1.ColumnHeaders.Add 3, , "tel"
    ListView1.ColumnHeaders.Add 4, , "addr"
    ListView1.View = lvwReport
    Dim itmX As ListItem
    Set itmX = ListView1.ListItems.Add(, , 111)
    Set itmX = ListView1.ListItems.Add(, , 222)
    Set itmX = ListView1.ListItems.Add(, , 333)
    Set itmX = ListView1.ListItems.Add(, , 444)
    Set itmX = ListView1.ListItems.Add(, , 222)
     For i = 1 To 5
    For j = 1 To 4
    ListView1.ListItems(i).ListSubItems.Add j, , i & j
    Next
    Next
    End SubPrivate Sub ListView1_Click()
    x = ListView1.SelectedItem.Index
    Text(0).Text = ListView1.ListItems(x).Text
    Text(1).Text = ListView1.ListItems(x).SubItems(1)
    Text(2).Text = ListView1.ListItems(x).SubItems(2)
    Text(3).Text = ListView1.ListItems(x).SubItems(3)
    End Sub
      

  5.   

    Private Sub CstLv_Click()
      Dim i As Long
      For i = 1 To CstLv.ListItems.Count
      If CstLv.ListItems(i).Selected Then
        CITx(0).Text = CstLv.ListItems.Item(i).SubItems(1)
        CITx(1).Text = CstLv.ListItems.Item(i).SubItems(2)
      End If
      Next i
    End Sub
      

  6.   

    这样简单些,把Selected定义为变量i,然后指定列SubItems(x)就OK了
      

  7.   

    我的代码跟你最后一个过程思路一样,基本上没区别,呵呵。
    现在就剩下:
    2.当用户编辑了TextBox(1)...(4)的信息并点保存按钮时,将修改后的按钮保存到该数据的原位置并刷新ListView1中被修改的记录(仅刷新被修改的,而不是刷新全部) 
    知者为师,恳请各位赐教。
      

  8.   


    Option ExplicitPrivate SelIndex As Single'保存
    Private Sub Command1_Click()
       If SelIndex < 1 Or SelIndex > ListView1.ListItems.Count Then Exit Sub
       ListView1.ListItems(SelIndex).Text = Text1(0).Text
       Dim i As Long
       For i = 1 To 3
          ListView1.ListItems(SelIndex).SubItems(i) = Text1(i).Text
       Next
    End Sub''''''''''''''''''''''''加载试验数据
    Private Sub Form_Load()
      ListView1.View = lvwReport
      ListView1.ColumnHeaders.Add , , "ID"
      ListView1.ColumnHeaders.Add , , "Name"
      ListView1.ColumnHeaders.Add , , "Tel"
      ListView1.ColumnHeaders.Add , , "Address"
      
      ListView1.FullRowSelect = True
      
      Dim i As Long
      Dim j As Long
      Dim itm As ListItem
      
      For i = 1 To 10
        Set itm = ListView1.ListItems.Add(, , "ID" & i)
        itm.SubItems(1) = "Name" & i
        itm.SubItems(2) = "Tel" & i
        itm.SubItems(3) = "Address" & i
      Next
    End Sub
    '**************************当有选择数据的时候.取得选取数据,并取得当前的Index
    Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
       Text1(0).Text = Item.Text
       Dim i As Long
       For i = 1 To 3
         Text1(i).Text = Item.SubItems(i)
       Next
       SelIndex = Item.Index
    End Sub
      

  9.   

    Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
       Text1(0).Text = Item.Text
       Dim i As Long
       For i = 1 To 3
         Text1(i).Text = Item.SubItems(i)
       Next
       SelIndex = Item.Index
    End Sub
    ---------------------------------------------------------------------
    这个更简单,把TextBox也i了