IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Positionnement "presque" aléatoire des Controls par code [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    dessinateur projeteur
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Par défaut Positionnement "presque" aléatoire des Controls par code
    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

  2. #2
    Membre averti
    Homme Profil pro
    dessinateur projeteur
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : dessinateur projeteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Par défaut
    Yep, yep, yep, j'ai trouvé la parade, sûrement pas des plus orthodoxe, mais ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_ajoutBoutons.Click
            Me.Panel1.AutoScroll = False
            nbNewBouton = InputBox("indiquer le nombre de nouveau(x) bouton(s)")
            For Me.i = 0 To CType(nbNewBouton, Integer) - 1
                poseBoutons()
            Next
            Me.Panel1.AutoScroll = True
        End Sub
    Juste un petit Autoscoll false avant d'ajouter les boutons et remise à True après.
    S'il y a plus "propre", je veux bien connaître

    Bonne nuit

    Pieche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affichage aléatoire des produits par ordre croissant.
    Par marcandre dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/11/2008, 16h40
  2. Nommage automatique des controls par Access
    Par sunvialley dans le forum Access
    Réponses: 2
    Dernier message: 13/06/2006, 09h54
  3. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo