TreeNode鼠标悬停工具提示未显示

use*_*312 8 c# treeview winforms mousehover

我试图在鼠标悬停在树视图节点上时显示工具提示.但工具提示没有显示出来.

这是我的代码:

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());
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我应该检查什么?

Jef*_*Roe 28

一种更简单的方法是:

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

而且你已经完成了.


ser*_*nko 4

看起来问题出在

TreeNode selNode = (TreeNode)treeView1.GetNodeAt(Cursor.Position);
Run Code Online (Sandbox Code Playgroud)

行,将其更改为

TreeNode selNode = (TreeNode)treeView1.GetNodeAt(treeView1.PointToClient(Cursor.Position));
Run Code Online (Sandbox Code Playgroud)

它应该有效;我还建议查看以下文章:How to add a ToolTip to a TreeNode in Visual C#了解有关如何将工具提示添加到树视图的详细信息

希望这有帮助,问候