2009-10-14 9 views
0

J'essaye d'ajouter une icône personnalisée près du texte d'un TreeNode, ainsi les articles pourraient avoir un état "coché/non coché" affiché. Je ne veux pas utiliser une case à cocher pour cela.TreeView avec arborescence personnalisée TreeNode

Des idées? Merci

+1

Quelle langue utilisez-vous – junmats

+2

Et quel framework/toolkit GUI? Winforms serait très différent de WPF, même si les deux peuvent utiliser C#. – Joey

Répondre

4

En supposant que vous utilisez .NET et Windows Forms.

Vous devez définir la propriété DrawMode de TreeView sur TreeViewDrawMode.OwnerDrawAll. Une fois que vous faites cela, l'événement DrawNode d'treeview se déclenchera à chaque fois qu'un nœud d'arbre est dessiné. Gérez cet événement et dessinez vos éléments manuellement.

Vous obtiendrez DrawTreeNodeEventArgs en tant qu'arguments d'événement. La propriété d'état de celui-ci vous indiquera quel état de l'arbre vous devez dessiner. e.Bounds vous aidera à déterminer les limites et vous pouvez utiliser e.Graphics pour dessiner. Vous trouverez de plus amples informations ici:

http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.drawnode.aspx

Mais préparez-vous à investir plusieurs heures.