2016-10-10 1 views
0

Ich möchte die QuickInfo für Objekte festlegen, die in der Listbox vorhanden sind, wenn sie sich über dem Objekt befinden. Ich verwende den folgenden Code aus dieser Frage: How can I set different Tooltip text for each item in a listbox?Fehler beim Festlegen der QuickInfo von ListBox-Elementen

private ITypeOfObjectsBoundToListBox DetermineHoveredItem() 
{ 
    Point screenPosition = ListBox.MousePosition; 
    Point listBoxClientAreaPosition = listBox.PointToClient(screenPosition); 

    int hoveredIndex = listBox.IndexFromPoint(listBoxClientAreaPosition); 
    if (hoveredIndex != -1) 
     return listBox.Items[hoveredIndex] as ITypeOfObjectsBoundToListBox; 
    else 
     return null;   
} 

die hovered- Index ist immer -1 und als Ergebnis bin ich immer null. Irgendwelche Vorschläge ..

+0

Haben Sie versucht, mit eine 'ListView' oder sogar eine' DataGridView' anstelle von 'ListBox'. Dann können Sie einfach jedem Tool einen anderen Tooltip zuweisen. –

Antwort

0

Zum Beispiel können Sie ein Listview verwenden können:

  • Legen Sie die ShowItemToolTips Eigenschaft auf true der Listview.

Beispiel-Code für neue Objekte mit Tooltip erstellen:

public Form1() 
    { 
     InitializeComponent(); 

     ListViewItem item1WithToolTip = new ListViewItem("Item with a tooltip"); // new item for listview1 
     item1WithToolTip.ToolTipText = "This is the item tooltip."; // set tooltip text 
     item1WithToolTip.SubItems.Add("1"); // add item 
     item1WithToolTip.SubItems.Add("3"); 

     ListViewItem item2WithToolTip = new ListViewItem("Second item with a tooltip"); // new item for listview1 
     item2WithToolTip.ToolTipText = "A different tooltip for this item."; 
     item2WithToolTip.SubItems.Add("1"); 
     item2WithToolTip.SubItems.Add("2"); 

     listView1.Items.Add(item1WithToolTip); 
     listView1.Items.Add(item2WithToolTip); 
    } 

nun eine Listenansicht zu Ihrem Formular hinzufügen und das Ergebnis dieses Codes sehen:

enter image description here

Verwandte Themen