2009-07-29 7 views
1

Ok, c'est un peu bizarre. Le comportement attendu pour un contrôle TreeView est que, si ShowNodeToolTips est défini sur false, alors, quand une étiquette pour un nœud d'arbre dépasse la largeur du contrôle (ou, plus précisément, son bord droit est passé le droit côté main de la zone client), une info-bulle s'affiche au-dessus du nœud affichant le texte complet de l'élément.Sous-classer TreeView dans WinForms pour les conseils sur la souris

Je voudrais désactiver cela, car la sémantique ci-dessus ne fonctionne pas toujours, selon ce que contient l'arborescence. J'ai donc roulé le mien, et ai obtenu les info-bulles pour travailler (et aligner mieux que celui par défaut!) - mais je voudrais pouvoir désactiver le comportement par défaut pour des situations où cela fonctionnerait nativement. Donc, quelqu'un peut-il me diriger dans la bonne direction quant au message à publier sur TreeView afin de désactiver ce comportement? J'ai regardé la référence de contrôle des fenêtres, mais je n'ai rien trouvé qui puisse ressembler à ça.

Répondre

0

Désolé, mais ce qui ne trouve la seule suggestion que j'ai pas beaucoup aider ... http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=337872

Pour contourner ce problème assez pénible, est de toujours mettre le texte à vide pour supprimer les info-bulles, l'utilisation la propriété TreeNode.Tag pour stocker le texte réel du nœud que vous souhaitez afficher et le propriétaire dessine ce texte vous-même.

1

Essayez ceci:

private const int TVS_NOTOOLTIPS = 0x80; 

protected override System.Windows.Forms.CreateParams CreateParams 
{ 
    get 
    { 
     CreateParams p = base.CreateParams; 
     p.Style = p.Style | TVS_NOTOOLTIPS; 
     return p; 
    } 
} 
Questions connexes