查看單個文章
舊 2007-11-26, 02:46 PM   #2 (permalink)
mraaa711128
註冊會員
 
mraaa711128 的頭像
榮譽勳章

勳章總數0
UID - 277024
在線等級: 級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時
註冊日期: 2007-08-16
文章: 51
精華: 0
現金: 105 金幣
資產: 125 金幣
預設

引用:
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"那就是第幾列啦.....^^

這是第一題
mraaa711128 目前離線  
送花文章: 34, 收花文章: 20 篇, 收花: 26 次
+10 金幣
回覆時引用此帖
向 mraaa711128 送花的會員:
飛行船大大 (2007-11-26)
感謝您發表一篇好文章