Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Différence entre Control.Select() et Control.Focus()

1 réponse
Avatar
Gilles TOURREAU
Salut tout le monde !

Je voudrais faire reprendre le focus à un contrôle quelconque (Bouton,
TextBox, ...etc). Je vois que dans l'aide il existe 2 méthodes pour cela :
Control.Select()
et
Control.Focus()

Les 2 fonctionnent mais je ne vois pas la différence entre ses 2 méthodes...
Laquelle faut-il mieux utiliser ? Pourquoi ?

Merci de vos lumières....

Cordialement

--
Gilles TOURREAU
Responsable Informatique
gilles.tourreau@pos.fr

Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr

1 réponse

Avatar
delattre.brice
Bonjour, sauf erreur de ma part,

La methode Focus indique quel est le controle qui possède le focus
d'entrée.
La methode Select() fait en fait appel à la methode
Select(false,false) don le 1er param sert de flag au second qui indique
le sens de parcour des controles au sein du coneneur.

En bref, la mehode Select sert simplement au conteneur du control sur
lequel la methode est appellée (IContainerControl) de "Selectionner"
ce controle (IContainerControl.ActiveControl = monControl) sans pour
autant donner à ce dernier le focus.

Il se peut que chaque classe heritée de IContainerControl ait
surchargé IContainerControl.ActiveControl afin de donner à monControl
le focus ce qui implique que les 2 methodes aient le meme comportement.

Ce qu'il fau retenir :
Apres un Focus(), le conteneur ne sait pas quel est l'enfant qui
possède le focus.
Apres un Select() le conteneur est avisé de l'enfant à selectionner
et eventuellement lui donne le focus si ce dernier est focusable.

Joyeux Noel.