Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TreeNode鼠标悬停工具提示未显示_C#_Winforms_Treeview_Mousehover - Fatal编程技术网

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

C# TreeNode鼠标悬停工具提示未显示,c#,winforms,treeview,mousehover,C#,Winforms,Treeview,Mousehover,我试图在鼠标悬停在treeview节点上时显示工具提示。但是工具提示没有显示出来 这是我的代码: private void treeView1_MouseHover(object sender, EventArgs e) { toolTip1.RemoveAll(); TreeNode selNode = (TreeNode)treeView1.GetNodeAt(Cursor.Position); if (selNode != null) {

我试图在鼠标悬停在treeview节点上时显示工具提示。但是工具提示没有显示出来

这是我的代码:

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

我应该检查什么?

看起来问题出在

TreeNode selNode = (TreeNode)treeView1.GetNodeAt(Cursor.Position);
行,换成

TreeNode selNode = (TreeNode)treeView1.GetNodeAt(treeView1.PointToClient(Cursor.Position));
它应该起作用;我还建议看下面的文章:关于如何向treeview添加工具提示的详细信息


希望这有帮助,一个更简单的方法是:

  • 创建树节点时,在树节点上设置ToolTipText
  • 将TreeView控件的ShowNodeToolTips属性设置为True

  • 您就完成了。

    工具提示将在您启用它们时自动显示,如下一个答案中所述。无需处理
    MouseHover
    事件。