引用:
Dim WK_CPosX As Integer
Private Sub Form_Load()
Dim WK_Col As ColumnHeader
Dim I, J As Integer
For I = 0 To 3
Set WK_Col = ListView1.ColumnHeaders.Add()
WK_Col.Text = "A" & I
Next I
For I = 0 To 9
Dim WK_Item As ListItem
Set WK_Item = ListView1.ListItems.Add()
WK_Item.Text = ListView1.ColumnHeaders.Item(1).Text & "," & I
For J = 1 To ListView1.ColumnHeaders.Count - 1
Dim WK_SubItem As ListSubItem
Set WK_SubItem = WK_Item.ListSubItems.Add()
WK_SubItem.Text = ListView1.ColumnHeaders.Item(J + 1).Text & "," & I
Next J
Next I
End Sub
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
If (WK_CPosX < 1) Then
Debug.Print (Item.Left & "," & Item.Top)
ElseIf (WK_CPosX > (ListView1.ColumnHeaders.Count - 1)) Then
'Do Nothing ...
Else
Debug.Print (ListView1.ColumnHeaders.Item(WK_CPosX + 1).Left & "," & Item.Top)
End If
End Sub
Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim I As Integer
Dim WK_ColWidth As Double
WK_CPosX = 0
WK_ColWidth = 0
For I = 0 To ListView1.ColumnHeaders.Count - 1
WK_ColWidth = WK_ColWidth + ListView1.ColumnHeaders.Item(I + 1).Width
If (WK_ColWidth < x) Then
WK_CPosX = WK_CPosX + 1
Else
Exit For
End If
Next I
Debug.Print (WK_CPosX)
End Sub
|
大概是這樣吧!!
WK_CPosX表示是第幾個Column被點....因為Listview本身不提供SubItem_Click事件...必須自己計算是第幾個欄位...看不懂再問我吧...
至於第幾列....應該很簡單.....在Item_Click事件中的引數"Item"應該有個屬性"Index"那就是第幾列啦.....^^
這是第一題