2009-11-18 90 views
7

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

这是我的代码:

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

我应该怎么检查?

回答

4

貌似问题是在

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

线,将其更改为

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

,它应该工作;我还要recomd来看看下面的文章:How to add a ToolTip to a TreeNode in Visual C#有关如何提示添加到TreeView

希望这有助于detalis,视

+0

工具提示在启用时会自动显示,如下一个答案所述。没有必要处理'MouseHover'事件。 – 2017-08-03 08:19:19

24

一个更简单的方法是:

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

你完成了。

相关问题