树节点鼠标悬停提示未显示

10
我想在鼠标悬停在树形视图节点上时显示一个提示框,但是提示框没有显示出来。这是我的代码:
private void treeView1_MouseHover(object sender, EventArgs e)
{
    toolTip1.RemoveAll();

    TreeNode selNode = (TreeNode)treeView1.GetNodeAt(Cursor.Position);

    if (selNode != null)
    {
        if (selNode.Tag != null)
        {
            Product selProduct = selNode.Tag as Product;

            if (selProduct != null)
            {
                toolTip1.SetToolTip(treeView1, selProduct.ProductName + "\n" + selProduct.ProductCategory.ToString());
            }
        }
    }
}

我应该检查什么?

2个回答

36

更简单的方法是:

  1. 在创建TreeNode时设置ToolTipText属性。
  2. 将TreeView控件的ShowNodeToolTips属性设置为True。

然后你就完成了。


4

看起来问题出在

TreeNode selNode = (TreeNode)treeView1.GetNodeAt(Cursor.Position);

将行更改为

TreeNode selNode = (TreeNode)treeView1.GetNodeAt(treeView1.PointToClient(Cursor.Position));

它应该可以工作;我还建议查看以下文章:如何在Visual C#中为TreeNode添加ToolTip,以获取有关如何向TreeView添加工具提示的详细信息。

希望这可以帮助,问候。


当您启用工具提示时,它们会自动显示,如下一个答案所解释的那样。无需处理“MouseHover”事件。 - Ron Inbar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接