2010-04-15 3 views
0

Я добавляю подсказку в ListViewItem. Тем не менее, всплывающая подсказка появляется только тогда, когда пользователь наводится на первую ячейку в строке, к которой применяется всплывающая подсказка.ListView ToolTip только в First Cell - VB.NET

MyListViewItem.ToolTipText = "Important Message" 

Единственный код, который я связан с ToolTips это:

MyListView.ShowItemToolTips = True 

Любая идея, как я могу сделать ToolTip показать на определенной ячейке в строке, или даже весь ряд? Благодарю.

+0

Дубликат: http://stackoverflow.com/questions/1328266/how-to-set-tooltips-on-listview-subitems-in-net –

+0

Я ищу другое решение. – Lou

ответ

1

Если вы хотите не-обертку ответ в отличие от DUP упоминалось, попробуйте следующее:

элемент управления ListView FullRowSelect свойство должно быть правдой. Затем вам нужно сохранить подсказки для каждого подэлемента, я делаю это внутри свойства тега subitem. То, что вы хотите сделать, находится в событии mousemove listview, вы захватываете элемент под мышью, получаете его подэлемент и используете этот совет.

Этот простой пример показывает вам, как получить эту подтипную всплывающую подсказку, вы можете просто взломать эту битку в соответствии с вашими потребностями.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    lvw.ShowItemToolTips = True 
    lvw.Columns.Add("Column A") 
    lvw.Columns.Add("Column B") 
    lvw.Columns.Add("Column C") 
    lvw.Items.Add(New ListViewItem(New String() {"Colors", "Green", "Blue"})) 
    lvw.Items(0).SubItems(0).Tag = "See the other columns" 
    lvw.Items(0).SubItems(1).Tag = "Like grass" 
    lvw.Items(0).SubItems(2).Tag = "Like the sky" 
End Sub 

Function GetItemTip(ByVal list As ListView, ByVal e As System.Windows.Forms.MouseEventArgs) As String 
    Dim item As ListViewItem = list.GetItemAt(e.X, e.Y) 
    If Not IsNothing(item) Then 
     Dim si As ListViewItem.ListViewSubItem 
     si = item.GetSubItemAt(e.X, e.Y) 
     If Not IsNothing(si) Then 
      Return si.Tag.ToString 
     Else 
      Return "" 
     End If 
    Else 
     Return "" 
    End If 
End Function 

Private Sub lvw_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lvw.MouseMove 
    Me.Text = GetItemTip(CType(sender, ListView), e) 
End Sub 
+0

Этот код просто меняет название формы, он не отображает всплывающую подсказку: Me.Text = GetItemTip (CType (отправитель, ListView), e) – Lou

+0

Я знаю, как я уже сказал, он показывает, как поддерживать подсказки для подпунктов, и что вам просто нужно взломать его с учетом ваших потребностей. Может быть, использовать элемент подсказки в списке? :) – invert