设置ListBox项的工具提示时出错

时间:2016-10-10 16:55:15

标签: c# winforms listbox tooltip mousehover

我想在列表框中的项目悬停时设置工具提示。我正在使用此问题中的以下代码:How can I set different Tooltip text for each item in a listbox?

    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;        
}

悬停的索引始终为-1,因此我得到null。任何建议..

1 个答案:

答案 0 :(得分:0)

例如,您可以使用listview:

  • 将ListView的ShowItemToolTips属性设置为true。

使用工具提示创建新项目的代码示例:

    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);
     }

现在向表单添加一个listview并查看此代码的结果:

enter image description here