Problématique de focus

cs_Jminterroge Messages postés 6 Date d'inscription samedi 2 octobre 2010 Statut Membre Dernière intervention 7 janvier 2014 - 7 janv. 2014 à 18:49
 ehjoe - 8 janv. 2014 à 11:42
Bonjour,

J'ai retrouvé le chemin de ce forum...
je viens de passer quelques heures avec VB2010 à la recherche d'une solution à un petit problème que j'aurais pu résoudre autrement. Mais, voila, je voulais savoir pourquoi...
En résumé, dans une structure ainsi construite :

'Initialisation des objets
...
ListBox1.SelectedIndex = -1
ListBox1.BackColor = Color.White
ListBox1.Enabled = False
...

ListBox1.Enabled = False, provoquait la perte du focus tenu par ListBox1 en entraînant le déplacement automatique de celui-ci sur DataGridView2, et en induisant une sélection automatique de la première ligne, ce que je ne voulais pas.
Après avoir identifié le problème, je l'ai résolu en fixant provisoirement dans le programme et dès son entrée le focus sur un objet relativement neutre, un label d'information, comme suit :

Label7.Focus() 'Résout les problèmes de modification automatique des focus en le fixant provisoirement

Ainsi, il m'a été possible d'énabeler, de focuser à loisir à l'intérieur d'une même séquence de programme.

Je pouvais résoudre le problème en modifiant l'ordre de la TabIndex des objets, mais cela ne correspondait pas à une solution qui pouvait me satisfaire.

Heureux de vous avoir tous, ou presque, au bout de ma plume, ce qui me permet de vous adresser mes meilleurs voeux pour cette nouvelle année 2014, année qui voit ma septuagénairie s'alourdir d'un an de plus ! :o) !

En espérant que cette communication ait pu trouver quelques utilités au niveau de vos développement que je vous espère "grandioses"...

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 7/01/2014 à 19:33
Bonjour,
Merci pour tes voeux et ta gentillesse, mais :
C'est quoi, cette "histoire" ?
Il est tout-à-fait normal qu'un contrôle inhibé ne puisse recevoir le focus .
Je ne comprends vraiment pas ce que "résoudrait" utilement un tel "stratagème".
Un exemple en montrant l'intérêt réel ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
Bonjour,

Merci des voeux, oui mais... C'est quoi la question ? C'est normal qu'un objet inactif n'ait pas le focus !

Cordialement, Joe.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 8/01/2014 à 07:51
Bonjour, ehjoe,
Je pense qu'il le savait déjà, mais que son problème était exposé là :
"en entraînant le déplacement automatique de celui-ci sur DataGridView2, et en induisant une sélection automatique de la première ligne"
et qu'une gestion conditionnelle eût été préférable à un tel "stratagème"
0
Bonjour UC foutue,

Bonne année à toi.

Depuis sa question il n'est même par revenu bien que prévenu par email...

Ben quand un focus n'est plus disponible le programme saute au prochain focus selon l'ordre des index prédéfini.
Et certains objet de liste, sauf codage contraire, sélectionnent en effet un élément de leur liste quand ils prennent le focus.

De facto ce qui arrive est normal, où est le problème, que voudrais-tu faire ?

Cordialement, Joe.
0
Rejoignez-nous