我有一個包含文件(來自用戶系統)和目標地址(兩列,多重選擇= false)的源地址的列表視圖。在列表視圖中選擇項目時更改工具提示文本
由於源地址可能是相當長的,如:
:d:\ ROOT \ BRANCH1 \ BRANCH2 \店3 \ branch4 \ MYFILE.DAT
第一列卻與此
d:\ ... \ MYFILE.DAT
的真正的路徑存儲在ListViewItem.Tag
我想有一個工具提示顯示整個路徑,每次用戶點擊(或更改)選定的項目。我拿出這個:
Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView1.SelectedIndexChanged
For Each locItem As ListViewItem In ListView1.SelectedItems
With ToolTip1
.RemoveAll()
.SetToolTip(ListView1, locItem.Tag)
End With
Next
End Sub
現在,工具提示會改變,但它總是跳過一個選擇。那就是:
選擇項1:工具提示示出了正確
選擇項2:工具提示不顯示
選擇項目3:工具提示正確顯示
選擇項5:工具提示不顯示
選擇項目2:工具提示正確顯示(選擇回到第2項,其並未出現第1次)
任何想法?
PS:我使用Visual Studio 2015年社區
PPS:我還需要有查看屬性設置爲View.Details(同時顯示欄和標題),所以設置ShowItemToolTip = True
不起作用
當前解決方案
我發現了一個解決方法,銷燬並重新創建工具提示控件。現在工具提示正確顯示在每個項目上:
Private myTooltip As ToolTip
Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView1.SelectedIndexChanged
If myTooltip IsNot Nothing Then myTooltip.Dispose()
myTooltip = New ToolTip
For Each locItem As ListViewItem In ListView1.SelectedItems
myTooltip.SetToolTip(ListView1, locItem.Tag)
Next
End Sub
我仍然對第一種方法中的跳過感到困惑。
我需要** View.Details **作爲視圖設置。 你的建議只適用於** View.List **模式。 我不好,我不是更具體 – Caligola