Re bonsoir,
je reviens déjà ...
J'ai ramé tout l'après midi et je viens de découvrir le hic.
Pour mon application, toute basique, j'ai un Form avec 5 TextBox pré remplis et 6 boutons qui ont/auront leurs utilités. Je crée par code un Panel, dans lequel je positionne, toujours par code, des Controls. Jusque là tout va bien, sauf que, quand j'ajoute des Controls, j'ai des résultats étonnants, sûrement normal, mais ça me laisse quelque peu dubitatif.
Le panel est AutoSize False, AutoScroll True. Quand le nombre de Controls fait apparaître l'AutoScroll, si je demande plus de Controls sans bouger la barre de défilements, ceux-ci se placent comme il faut, mais si j'ai descendu la barre de défilement au dernier Control, le point de référence du Panel semble ne plus être le même ? J'ai des blancs entre les Controls, qui semblent correspondre au nombre de Controls que j'ajoute et qui s'incrémentent ??? Quelle est la propriété du Panel ou des Controls qui me fait défaut ?
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Public Class Form1
    Dim bouton(4) As Button
    Dim positionX As Integer = 10
    Dim positionY As Integer = 10
    Dim nbNewBouton As String
    Dim i As Integer
    Const nbBoutonBase As Integer = 4
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        tableau()
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_ajoutBoutons.Click
        nbNewBouton = InputBox("indiquer le nombre de nouveau(x) bouton(s)")
        For Me.i = 0 To CType(nbNewBouton, Integer) - 1
            poseBoutons()
        Next
    End Sub
 
 
    Sub tableau()
        For Me.i = 0 To nbBoutonBase
            poseBoutons()
        Next
    End Sub
 
 
    Sub poseBoutons()
        bouton(i) = New Button
        With bouton(i)
            .Location = New Point(positionX, positionY)
            .Size = New Size(100, 25)
            .Text = "X=" & positionX.ToString & "  Y=" & positionY.ToString
        End With
        Me.Panel1.Controls.Add(bouton(i))
        positionY += 35
    End Sub
 
End Class
Merci de vos lumières

Pieche