06-08-2022 02:03 AM
Bonjour,
J'ai besoin d'obtenir et de modifier, grâce à une commande, l'indice du focus clavier d'un tableau de cluster.
Vous trouverez ci-joint une base.
Bonne journée ! 😊
Solved! Go to Solution.
06-13-2022 08:33 AM
Je ne pense pas que ce soit possible.
Pour info pour les contrôles de type tableau, il faut différencier entre 2 choses :
- Le contrôle de l'élément (ici de type "Cluster", héritant de "Control"), instance unique représentant le modèle de tous les éléments affichés dans ce tableau. Il est obtenu via la propriété "Array Element".
- Les éléments "affichés" qui sont le rendu graphique de tous les éléments visibles du tableau, à partir du contrôle "modèle".
Il y a une subtilité de l'objet "Array Element" qui fait qu'il reflète toujours en pratique les propriétés du dernier élément "affiché" qui a subit une modification de valeur de la part de l'utilisateur (une modif programmatique via les propriétés "Value" ou "Value (Signaling)" ne suffit pas).
Du coup, il est possible d'obtenir l'index de l'élément qui a le focus via ArrayElement.Value, en recherchant l'élément dans le tableau tout entier. Mais il faut que le tableau ne contiennent que des valeurs uniques pour qu'elles soit différenciables. Pour ce qui est de modifier l'élément qui a le focus, je pense que c'est tout simplement impossible…
A part ça, vous pouvez aussi utiliser les propriétés "Selection Start[]" et "Selection Size[]" (et en faisant clic-droit sur le tableau, Advanced->Show Selection) pour afficher un rectangle autour de l'élément que vous voulez, mais ça ne lui donne pas le focus...