2009-11-18 6 views
7

J'essaie d'afficher une info-bulle lorsque la souris survole un nœud treeview. Mais l'info-bulle ne s'affiche pas.L'infobulle TreeNode de souris ne s'affiche pas

Ceci est mon code:

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

Que dois-je vérifier?

Répondre

4

ressemble le problème est dans le

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

ligne, changer pour

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

et il devrait fonctionner; Je voudrais également recomd regarder l'article suivant: How to add a ToolTip to a TreeNode in Visual C# pour detalis sur la façon d'ajouter des infobulles au TreeView

espérons que cette aide, ce qui

+0

Les info-bulles s'affichent automatiquement lorsque vous les activez, comme expliqué dans la réponse suivante. Il n'y a pas besoin de gérer l'événement 'MouseHover'. –

24

Un moyen beaucoup plus simple est de:

  1. Réglez le ToolTipText sur le TreeNode lorsque vous le créez.
  2. Définissez la propriété ShowNodeToolTips du contrôle TreeView sur True.

Et vous avez terminé.