[VB.NET] utilisation du paramètre "Dock"

Résolu
morickno Messages postés 117 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 26 juin 2007 - 19 avril 2007 à 10:19
morickno Messages postés 117 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 26 juin 2007 - 19 avril 2007 à 11:31
Bonjour,

Mon problème relève de l'utilisation du paramètre dock. Pour l'illustrer, voici un exemple simple:

Je place un panel sur ma forme (Panel1). Je place un autre panel (Panel2) sur le Panel1. Je place un autre panel (Panel3) sur le Panel1.
Si je met le paramètre dock Left à mon Panel2 et dock Fill à mon Panel3, tous va bien, ils sont dimensionnés l'un à coté de l'autre corectement.
Par contre,Si je met le paramètre dock Left à mon Panel3 et dock Fill à mon Panel2, le Panel2 se dimensionne sur tous le le Panel1. La largeur ne s'arrete pas au Panel3 qui est à dock = left. La partie gauche de mon Panel2 est alors masqué par le Panel3.

Je pense que ce cas est lié au faite que j'ai créé le Panel3 après le Panel2.

Question: Comment faire pour pour que le logiciel considère que le Panel3 à été créé avant le Panel2. Y'a t'il un index que l'on peu modifier (un peu comme le TabIndex).

J'espère que mes explications n'ont pas été trops compliquées.

Merci de votre aide.

2 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 avril 2007 à 11:02
D'après le MSDN, "...Les contrôles sont ancrés dans leur ordre de plan, qui est la superposition
visuelle des contrôles d'un formulaire sur l'axe Z du formulaire (profondeur)....". De l'arrière plan au premier plan. Donc dans l'ordre de création si cet ordre n'est pas modifier.

Ainsi dans le premier cas, Panel2 se positionnera à gauche de Panel1 et Panel3 se positionnera à gauche de l'espace libre de Pane1, c'est à dire contre Panel2.

Dans le second cas, Panel2 se positionnera à gauche de l'espace libre, c'est à dire à gauche de Panel1, puis Panale 3 se positionnera à gauche de Panel1

Maintenant, dans le premier cas, si quelque part dans le code tu mets Panel2.BringToFront, tu renvoie Panel2 au premier plan, donc en dernier dans l'ordre de positionnement, tu constantera que Panel3 (positionné donc avant Panel2) vient se positionné à gauche de Panel1 donc sous Panel2

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
morickno Messages postés 117 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 26 juin 2007
19 avril 2007 à 11:31
Explication parfaite, merci bp.

Pour ma part, je vais mettre le control Panel2 au premier plan depuis le concepteur graphique.

Merci encore,
0
Rejoignez-nous