当前位置:编程学习 > VB >>

关于 listview 双击获得数据值问题 的请教

有个listview 窗口显示了如下信息

             序号    姓名     学号   性别    专业
              1     张三     2011    女   计算机
              2     张华     1586    女   法学
              3     林林     5203    男   动物学
              4     李胡     5466    女   会计
              5     赵珊     5866    女   考古学


    text1 , text2, text3

 要求:想过通过鼠标双击listview内的“任意”一个内容,在text中显示相关内容。

 比如“任意”双击“动物学” , 要求达到如下效果:
  1、双击“动物学”, 在text1 中显示双击获得的内容  “动物学” 
  2、双击“动物学”, 在text2 中显示 动物学 的列表头信息 “专业”
  3、双击“动物学”, 在text3 中显示 动物学 的列表信息行数 “3”

请高手帮忙协助解决,在书上查找了很多关于listview的详细使用,但是就是无法自行解决。谢谢 
  --------------------编程问答--------------------
Option Explicit

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Type POINTAPI
    X As Long
    y As Long
End Type

Private Type LVHITTESTINFO
   pt As POINTAPI
   flags As Long
   iItem As Long
   iSubItem As Long
End Type

Private Const LVM_FIRST = &H1000
Private Const LVM_SUBITEMHITTEST = (LVM_FIRST + 57)

Private Sub ListView1_Click()
    Dim tem$
    Dim lvhti As LVHITTESTINFO
    Dim SelectRow As Integer, SelectCol As Integer
    Call GetCursorPos(lvhti.pt)
    Call ScreenToClient(ListView1.hwnd, lvhti.pt)
    Call SendMessage(ListView1.hwnd, LVM_SUBITEMHITTEST, 0, lvhti.pt)
    SelectRow = lvhti.iItem + 1
    SelectCol = lvhti.iSubItem
    If SelectRow < 1 Then
    Else
        If SelectCol = 0 Then
        Else
            Debug.Print ListView1.ListItems(SelectRow).ListSubItems(SelectCol).Text '单元格内容
            Debug.Print SelectRow                                                   '行数
            Debug.Print ListView1.ColumnHeaders.Item(SelectCol + 1).Text            '列名
        End If
    End If
End Sub
--------------------编程问答-------------------- listview排序怎么搞?一直每弄懂 --------------------编程问答-------------------- vbload  你好,我还是不会呢。有简单的代码吗》 
--------------------编程问答--------------------
引用 3 楼 loginxkm1 的回复:
vbload  你好,我还是不会呢。有简单的代码吗》

--------------------编程问答-------------------- 实在是不会呢 。 --------------------编程问答-------------------- listview有行列属性  直接读取就行了..排序也有相应的属性 并不复杂 只是默认排序好像是以文本形式排列的  要对数字排序还得用API
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,