2009-11-18 5 views
7

Sto tentando di mostrare un suggerimento quando il mouse passa su un nodo di treeview. Ma il suggerimento non viene mostrato.Treetikey mouse tooltip del mouse non visualizzato

Questo è il mio codice:

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

Cosa devo controllare?

risposta

4

sembra che il problema è nella linea

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

, modificarlo a

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

e dovrebbe funzionare; Vorrei anche recomd a guardare il seguente articolo: How to add a ToolTip to a TreeNode in Visual C# per detalis su come aggiungere le descrizioni comandi a TreeView

speranza che questo aiuti, riguarda

+0

I tooltip vengono visualizzati automaticamente quando li si abilita, come spiegato nella risposta successiva. Non è necessario gestire l'evento 'MouseHover'. –

24

Un modo molto più semplice è quello di:

  1. Impostare il ToolTipText sul TreeNode quando lo crei.
  2. Impostare la proprietà ShowNodeToolTips del controllo TreeView su True.

E il gioco è fatto.