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 :

attribuer de numero a des picturebox


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 12
    Points
    12
    Par défaut attribuer de numero a des picturebox
    bonjour a tous voila j'ai 234 picturebox (picturebox1......picturebox234) et il faut qu'avec un clic sur un button chaque picturebox reçois un numéro allons de 2 à 12 d'une façon aléatoire et il faut que chaque numéro soit attribuer le même nombre de fois.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Citation Envoyé par waelamor Voir le message
    bonjour a tous voila j'ai 234 picturebox (picturebox1......picturebox234) et il faut qu'avec un clic sur un button chaque picturebox reçois un numéro allons de 2 à 12 d'une façon aléatoire et il faut que chaque numéro soit attribuer le même nombre de fois.
    Pour que les numéros aléatoires (entre 2 et 12, donc 11 N°) soient attribués le même nombre de fois, il faut 21*11=231 PictureBox.

    Je cré les pictureBox dynamiquement (avec un label en dessous pour voir les numéro attribué au tag du PictureBox)
    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
    40
    41
    42
        Sub CrePicture()
            Dim k As Integer = 1
            Dim Pic As PictureBox
            Dim lbl As Label ' label pour voir le nombre attribué au picturebox
            For i As Integer = 1 To 10
                For j As Integer = 1 To 23
                    Pic = New PictureBox()
                    Pic.Name = "Picturebox" & k.ToString
                    Pic.Tag = 0
                    Pic.Top = 20 + (i * 70)
                    Pic.Left = 20 + (j * 65)
                    Pic.Width = 50
                    Pic.Height = 50
                    Pic.BackColor = Color.Aquamarine
                    Me.Controls.Add(Pic)
                    lbl = New Label
                    lbl.Name = "label" & k.ToString
                    lbl.Top = Pic.Top + Pic.Height + 2
                    lbl.Left = Pic.Left
                    lbl.Width = 20
                    lbl.Height = 18
                    Me.Controls.Add(lbl)
                    k += 1
                Next
            Next i
            ' le dernier (231)
            Pic = New PictureBox()
            Pic.Name = "Picturebox" & k.ToString
            Pic.Tag = 0
            Pic.Top = 20 + (11 * 70)
            Pic.Left = 20 + 65
            Pic.Width = 50
            Pic.Height = 50
            Pic.BackColor = Color.Aquamarine
            Me.Controls.Add(Pic)
            lbl = New Label
            lbl.Name = "label" & k.ToString
            lbl.Top = Pic.Top + Pic.Height
            lbl.Left = Pic.Left
            lbl.Width = 20
            Me.Controls.Add(lbl)
        End Sub
    Un dictionnaire me permet de suivre les nombres aléatoires générés et de limiter leur attribution à 21
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim dicoNb As Dictionary(Of Integer, Integer) = New Dictionary(Of Integer, Integer) ' pour suivre le nombre d'attribution des nombres compris entre 2 et 12
     
        Private Sub frmManipPicture_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            CrePicture()
            For i As Integer = 2 To 12
                dicoNb.Add(i, 0)
            Next
        End Sub
    Attribution des nombres aléatoires

    La méthode de génération de nombre aléatoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Private Function hasard(ByVal limiteBasse As Integer, ByVal limiteHaute As Integer) As Integer
            Randomize()   ' Initialise le générateur de nombre aléatoire.
            Return CInt(Int((limiteHaute * Rnd()) + limiteBasse)) ' Génère un nombre aléatoire entre les limites basse et haute.
        End Function
    La méthode de répartion des nombres aléatoires (le nombre est noté dans la propriété Tag du PictureBox)
    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
        Sub AttribueNombre()
            Dim UnNombre As Integer
            Dim k As Integer = 1    ' numéro des PictureBox
            For i As Integer = 1 To 1000
                UnNombre = hasard(2, 11)
                If dicoNb(UnNombre) < 21 Then ' chaque nombre peut être attribué 21 fois
                    DirectCast(Me.Controls("Picturebox" & k.ToString), PictureBox).Tag = UnNombre
                    DirectCast(Me.Controls("label" & k.ToString), Label).Text = UnNombre ' voir le nombre
                    k += 1
                End If
                dicoNb(UnNombre) += 1
            Next
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            AttribueNombre()
        End Sub
    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    bonjour rv26t;

    tu a dis vraiment tout ;pense a nous laissé quelque chose a dire une autre fois.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    svp j'ai changé la localisation des labél et je veut les mettre en premier plan ( cad j'ai mis les label sur les picturebox mais les label deviennent invisible et je veut les rendre visible) ?

  5. #5
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Utilise BringToFront

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     For Each c As Label In Controls
         c.BringToFront()
     Next
    NB: Chez moi les labels passent -par défaut- au premier plan vis à vis d'une PictureBox.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bnojour azstar,
    Citation Envoyé par azstar Voir le message
    bonjour rv26t;

    tu a dis vraiment tout ;pense a nous laissé quelque chose a dire une autre fois.


    Citation Envoyé par _Ez3kiel Voir le message
    Utilise BringToFront
    Bien vu

    Sinon pour la boucle de création des contrôles PictureBox tu peux faire comme ceci,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            For i As Integer = 1 To 11
                For j As Integer = 1 To 21
    cela change simplement la disposition, mais plus besoin d'en rajouter un.

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

Discussions similaires

  1. Générer des Picturebox
    Par karasnake dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/03/2009, 19h55
  2. Enumerer des PictureBox
    Par myspirou dans le forum VB.NET
    Réponses: 3
    Dernier message: 11/05/2008, 03h19
  3. [vb6] Imprimer des pictureBOx dans un fichier
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 18/07/2006, 11h55
  4. [vb6] Remplacer les Frames par des PictureBox
    Par Christophe P. dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/07/2006, 16h26
  5. Faire un New pour creer des PictureBox à la volée ?
    Par __fabrice dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 19/11/2005, 13h09

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