Bonjour,
Il me faudrait aboutir à un 'TreeView' comportant
- en plus du box d'expansion de noeud ('+' ou '-') et du texte classiques, parfois un 'checkbox' et toujours une image (icône 16x16 d'un 'iconsList_TreeViews.ImageStream').
- les 'checkboxes' ne doivent être présents qu'à des noeuds choisis, pas à tous les noeuds du 'TreeView'.
Requête presque courante, non ?
1e solution :
1 2
| node.Nodes[ ].ImageIndex = 3;
this.treeView.CheckBoxes = true; |
Problèmes:
- Checkbox à tous les noeuds, avec 'Windows.Forms'
- Checkbox conjointement à Icône est impossible avec 'FlexGrid' de 'WinForms' de ComponentOne, car il n'y a qu'un seul 'glyphe'.
flex.SetCellCheck(i, 1, CheckEnum.Checked);
- Telerik :
myNode.ShowCheckBox = false;
2nd solution :
Trouver un outil de tierse partie qui vend un TreeView qui permet la requête décrite ci-dessus. Laquelle ?
3rd solution :
Abandonner
this.treeView.CheckBoxes = true;
et le substituer par un icône double : 1e partie = checkbox (Checked, Unchecked ou aucun checkbox --> icônes différents) et 2e partie : l'image personnelle appropriée (encodée et stockée dans mon 'iconsList_TreeViews.ImageStream').
Inconvénients :
- Simuler programmatiquement le checkbox (propriété 'Checked' = true ou false ou null).
- Comment arriver à ce que le système ne confonde pas un click gauche sur l'icône (= checkbox factice) ou sur le texte (sélection du noeud) ? Comment créer deux zones de click distinctes pour chaque noeud ? Comment identifier l'une de ces deux zones au niveau de
void treeView_MouseClick(object sender, EventArgs e)
?
Je ne suis certainement pas le premier qui a besoin d'une telle implémentation ...
Quelqu'un a-t-il une solution (code-exemple ou url) ?
Merci d'avance.
Partager