Ordre des controls dans un Panel

salutgael Messages postés 2 Date d'inscription mardi 19 juillet 2011 Statut Membre Dernière intervention 10 décembre 2011 - 10 déc. 2011 à 10:38
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 11 déc. 2011 à 13:48
Bonjour à tous !

je me heurte à un petit problème, on peut bien sur parcourir les éléments d'un panel avec par exemple : panel1.controls(i)
i, étant l'indice du contrôle en question.
j'ai remarqué que ces indices sont donnés automatiquement dans l'ordre inverse du placement de l'objet dans le panel.
je m'explique : si je place deux objets dans mon panel, le premier placé aura l'indice 1 et le deuxième l'indice 0.

Ma question est la suivante : Peut-on changer l'attribution de ces indices ?

Bien sur, la propriété TabIndex ne change rien à l'ordre défini automatiquement !

En vous remerciant de votre lecture.
Gaël.

2 réponses

ehjoe Messages postés 728 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 30 mars 2014 4
10 déc. 2011 à 12:56
Bonjour salutgael,

Je crois qu'il y a une confusione !
TabIndex ne change pas lemplacement des objets, il régente l'ordre dans lequel la tabulation entre objets va être effectuée, en concordance avec TabStop.

J'ai en effet déjà constaté ce "chiant" problème vbNet d'avoir la manie de recopier les objets, un coup dans le désordre et un coup dans l'ordre (c'est le progrès MST, sous vb6, suffisait d'écrire objet(i))...
La seule parade manuelle que j'ai trouvé est hélas de le remettre dans l'ordre avec mes pattes velues

Cordialement, Joe.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
11 déc. 2011 à 13:48
Salut

j'ai remarqué que ces indices sont donnés automatiquement dans l'ordre inverse du placement de l'objet dans le panel.


pas forcément

que veux tu faire?

par ex si j'ai plusieurs textbox et je veux un text vide dans chacun
for each ctrl as control in panel1.controls
  if typeof ctrl is textbox then
     DirectCast(ctrl,textbox).text = string.empty
   end if
next 
0
Rejoignez-nous