Bonjour,
Voici un petit bout de code :
Explications :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Private Sub btnSearch_Click(sender As System.Object, e As System.EventArgs) Handles btnSearch.Click Try For Each ttc_Till As TillToControl In GetTillsToControl(CInt(nudIdList.Value), "0" & userInfos.Store(0).Substring(1), dtpDate.Value.Date) Dim uc As New ReportControl(ttc_Till, frmStart.userInfos.Language) uc.Name = "rc_Till" & ttc_Till.Till.ToString splitTTC.Panel2.Controls.Add(uc) uc.Dock = DockStyle.Top AddHandler ttc_Till.PropertyChanged, AddressOf ttc_Changed Next bl_tillChanged = False Catch ex As Exception MsgBox(ex.Message) End Try End Sub
Au click sur le bouton "btnSearch", je récupère des infos dans une db et je boucle dessus.
Dans cette boucle :
- j'instancie un control de type "ReportControl" (c'est un contrôle perso)
- je lui donne un nom
- je l'ajoute à la collection de contrôle du panel2 d'un splitcontainer
- je affecte la valeur Top à sa propriété Dock
- et pour finir, j'ajoute un handler
Tout fonctionne bien mise à part que lors de l'ajout des contrôles, plutôt que d'être affichés les uns en dessous des autres, ils sont affichés les uns au dessus des autres. C.-à-d. que si j'ajoute les controles 1, 2 et 3, je verrai à l'écran (de haut en bas) 3 puis 2 puis 1.
Je m'attendais à ce que les contrôles s'affichent dans l'ordre d'ajout au formulaire et non pas dans l'ordre inverse.
Aurais-je oublié quelque chose lors de l'ajout des contrôles ?
Kropernic.
P.S. : J'ai bien sûr contourné (résolu) mon problème en affectant Bottom au lieu de Top à la propriété Dock mais j'aimerais tout de même comprendre ce comportement.En fait c'est tout pourri comme solution...
Partager