2009-08-13 16 views
-1

Est-il possible que l'on peut insérer un nouveau contrôle dans un panneau sur l'index précédent que nous pouvons faire avec la collection Liste comme ceci:Insérer un nouveau contrôle dans le panneau sur l'index précédent en C#

List.Insert(2,Value); 

I travaille avec des winforms C#.

Je veux le faire parce que je veux accéder aux commandes dans un ordre précis, comme celui-ci:

Control c = panelThumbnail.GetNextControl(control, true); 

Il donne les commandes dans l'ordre de leurs indices. Y a-t-il un autre moyen de résoudre le problème?

Répondre

1

L'ordre des contrôles renvoyés par Control.GetNextControl est basé sur le TabIndex des contrôles contenus. Pour modifier l'ordre des contrôles renvoyés, modifiez TabIndex de chaque contrôle pour qu'il corresponde à l'ordre dans lequel vous souhaitez les renvoyer.

+0

Je trouve également le moyen de changer l'index qui, après avoir ajouté l'enfant au Panel, appelle SetChildIndex. Mais son droit que ontrol.GetNextControl est basé sur le TabIndex. Merci Alabamasucks pour la correction. – qulzam

+0

Maintenant le problème est que le tabindex n'est pas un unique qui perturbe ma logique. est-il possible de rendre tabindex unique – qulzam

+0

@qulzam utiliser mz-tools pour le rendre unique – Smith

0

Vous pouvez ajouter les nouveaux contrôles à un tableau de contrôles. Ensuite, vous pouvez accéder aux contrôles via le tableau dans n'importe quel ordre, au lieu d'utiliser .GetNextControl.

Questions connexes