VB.NET – Surligner (highlight) le noeud sélectionné d’un TreeView

Problématique

Vous venez de sélectionner un noeud par programme par l’instruction :

myTreeView.SelectedNode=mySelectNode

mais il n’apparaît pas en mode « Highlight » (par défaut en blanc sur fond bleu).

Solution

Deux cas se présentent. Et il faut en fait les traiter tous les deux.

Vous perdez le surlignement quand le treeView perd le focus

Si vous perdez le highlight quand le treeView perd le focus (vous suivez ce mélange d’anglais et de français parce que moi j’ai du mal à l’écrire), il faut vérifier la propriété HideSlection du TreeView : elle est par défaut à False. Donc, c’est logique, il cache la sélection.

Mettez-la à True :

  • soit dans les propriétés du contrôle dans le design de la form
  • soit par programme avec l’instruction

myTreeview.HideSelection = True

et ça ira beaucoup mieux

Et de toute manière vous ne l’avez pas du tout ce surlignement

Il faut simplement après chaque changement de sélection remettre le focus sur le treeView de la manière suivante :

myTreeView.Focus()

C’est simple mais on met un temps fou à trouver ce truc.

ET LE TOUR EST JOUÉ ! ALORS ON DIT MERCI QUI ?

A lire

Visual Basic 2010, étape par étape (Michael Halvorson)

Il s’agit d’un livre Microsoft Press. Et je trouve les ouvrages Microsof Press plutôt bien faits.

Étrangement, ils n’ont rien à voir avec le MSDN Microsoft, plutôt abscons et mal fichu, utile dans le seul cas où on a un besoin précis. En tout cas, il est franchement difficile d’apprendre le langage avec MSDN.

En fait est-ce aussi étrange que ça ? Si on peut vendre un livre en plus du soft, pourquoi se gêner. Mais je vous le redis, ils en valent la peine.

Laisser un commentaire