請問各位大大,
如題,小弟於 VB6 中設定 ListView 有 CheckBox
(註:ListView 有 ItemCheck 以及 ItemClick 兩個事件)
一、環境設定如下:
ListView名稱:Listview1
項目數量:10個
選項方式:可多重選
二、程式目的:
因為我想要把被選取的項目以紅字標示,以便跟現有的進行區別(新勾選)
程式碼如下:
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
If ListView1.ListItems(ListView1.SelectedItem.Index).Checked = True Then
ListView1.SelectedItem.ForeColor = vbRed
Else
ListView1.SelectedItem.ForeColor = vbBlack
End If
End Sub
三、測試發生之問題
步驟1. 假設我先點選第10項(點內容),再去勾選第10項的checkbox
此時ListView1.SelectedItem.Index=10,亦有觸發ItemClick事件,完成目標!
步驟2. 『只點選』第5項的『Checkbox』,此時並未觸發ItemClick
無觸發ItemClick事件,未達目標~
(竟然可以點選而無觸發ItemClick事件?)
後來小弟發現點選 Checkbox 是觸發 ItemCheck 事件,因此設定ItemCheck 事件
的程式碼跟ItemClick一樣,但問題來了
下面這個code要改,
If ListView1.ListItems(ListView1.SelectedItem.Index).Checked = True
但是 ListView1.SelectedItem.Index 仍然是=10 (依步驟1~2)
因此問題是:我如何得知我目前點選的是第5個項目呢?
類似『ListView1.CheckedItem.Index』(當然是沒有...)
Google很久,大陸、英文通通都搜過了~就是沒有..淚~
請各位大大幫忙~感謝
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html
留言列表