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 :

Boutons dynamique compteur


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    futur ingenieur genie electrique
    Inscrit en
    Février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : Février 2013
    Messages : 30
    Points : 16
    Points
    16
    Par défaut Boutons dynamique compteur
    bonsoir cher développeur,
    j'ai besoin de votre aide j'ai créer des boutons de façon dynamique et j'ai créer une matrice de caractère. tel que, si je clique sur un bouton, la matrice sera chargé par des lettre "b" dans la position cliqué ainsi son voisinage. Voici mon code aidez moi svp:
    NB i , k compteur de la matrice
    i3,j3 sont ceux des boutons
    NB2: il semble que les compteurs ne sont pas pris en considération et c'est pour ca j'ai pas eu les résultats souhaités

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Private Sub DynamicButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim i3 As Integer : Dim j3 As Integer
            Dim i As Integer : Dim k As Integer
            Dim Mat(7, 7) As String
            Dim C(i3, j3) As Button
     
            C(i3, j3) = CType(sender, Button)
     
                i = i3
                k = j3
                Mat(6, 6) = " bb" : Mat(5, 5) = "bb" : Mat(6, 5) = "bb" : Mat(6, 7) = "bb" : Mat(5, 6) = "bb" : Mat(7, 6) = "bb" 
                Mat(7, 7) = "bb" : Mat(5, 7) = "bb" : Mat(7, 5) = "bb"

  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,

    Init des éléments
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Const XMax As Integer = 7
        Const YMax As Integer = 7
        Dim Mat(XMax, YMax) As String
     
        Private Sub frmManipTextBox_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            CreButton()
            For k As Integer = 0 To XMax
                For l As Integer = 0 To YMax
                    Mat(k, l) = ""
                Next
            Next
        End Sub
    Création des boutons
    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
        Sub CreButton()
            Dim Btn(7, 7) As Button
            For i As Integer = 0 To XMax
                For j As Integer = 0 To YMax
                    Btn(i, j) = New Button()
                    Btn(i, j).Name = "Button" & i & j
                    Btn(i, j).Text = "Button" & i & j
                    Btn(i, j).Top = (i) * 25
                    Btn(i, j).Left = 20 + (j * 75)
                    Btn(i, j).Tag = i & "|" & j
                    AddHandler Btn(i, j).Click, AddressOf DynamicButton_Click
                    Me.Controls.Add(Btn(i, j))
                Next
            Next i
        End Sub
    Marquage sur Clic bouton
    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
        Private Sub DynamicButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            MarqueBBMatrice(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1))
        End Sub
     
        Sub MarqueBBMatrice(ByVal i As Integer, ByVal j As Integer)
            Dim XDebut As Integer
            Dim XFin As Integer
            Dim YDebut As Integer
            Dim YFin As Integer
            ' calcule la zone matrice
            If i > 0 Then XDebut = i - 1
            If i < XMax Then XFin = i + 1
            If j > 0 Then YDebut = j - 1
            If j < YMax Then YFin = j + 1
            ' marque les BB
            For k = XDebut To XFin
                For l = YDebut To YFin
                    Mat(k, l) = "BB"
                Next
            Next
        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 à l'essai
    Homme Profil pro
    futur ingenieur genie electrique
    Inscrit en
    Février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : Février 2013
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    merci cher ami pour ton aide tu ma sauver la vie

  4. #4
    Membre à l'essai
    Homme Profil pro
    futur ingenieur genie electrique
    Inscrit en
    Février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : Février 2013
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    bonsoir comment je fait si je ve faire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Mat(i, j) = "BB"
            Mat(XDebut, j) = "BB"
            Mat(XFin, j) = "BB"
            Mat(XFin, YDebut) = "BB"
            Mat(i, YDebut) = "BB"
            Mat(XDebut, YDebut) = "BB"
            Mat(XDebut, YFin) = "BB"
            Mat(i, YFin) = "BB"
            Mat(XFin, YFin) = "BB"
    cad si je clique sur un bouton les 9 position seron lui reservé cad le bouton cliqué et son voisinage ne peuvent avoir que un backcolor=color.red
    et qui reste auront un backcolor=color.yellow

  5. #5
    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,

    Comme les boutons ont été construit avec un nom contenant les indices il suffit de faire un DirectCast sur le nom des boutons dans la collection des contrôles de la fenêtre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            ' calcule la zone matrice
            If i > 0 Then XDebut = i - 1
            If i < XMax Then XFin = i + 1 Else XFin = i
            If j > 0 Then YDebut = j - 1
            If j < YMax Then YFin = j + 1 Else YFin = j
            ' marque les BB et colorise les boutons
            For k As Integer = XDebut To XFin
                For l As Integer = YDebut To YFin
                    Mat(k, l) = "BB"
                    DirectCast(Me.Controls("Button" & k.ToString & l.ToString), Button).BackColor = Color.Red
                Next
            Next
    Citation Envoyé par king2070 Voir le message
    ... et qui reste auront un backcolor=color.yellow
    Ils sont jaune au départ, ou il faut que tout les boutons hors zone matrice soient jaune ?
    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.

  6. #6
    Membre à l'essai
    Homme Profil pro
    futur ingenieur genie electrique
    Inscrit en
    Février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : Février 2013
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    bon daccord je vais vous dire c'est koi mon probleme o juste
    enfaite moi j'ai 4 joueur rouge,jaune , vert , bleu

    et j'ai un text box(sous le nom de n=0) qui affiche le joueur qui va cliqué pour changer le backcolor
    si n.text=1
    le joueur rouge clique et par suite la case cliqué aura un backcolor rouge
    et par suite la case cliqué ainsi son entourage sera lui reserve c'adire si nchange(n.tex<>1) et un joueur veut cliqué sur une case qui est reserve un msgbox affiche construction impossible

    si n.text=2
    le joueur jaune clique et par suite la case cliqué aura un backcolor jaune
    et par suite la case cliqué ainsi son entourage sera lui reserve c'adire si n change(n.tex<>2) et un joueur veut cliqué sur une case qui est reserve un msgbox affiche construction impossible

    si n.tex=3
    le joueur vert clique et par suite la case cliqué aura un backcolor vert
    et par suite la case cliqué ainsi son entourage sera lui reserve c'adire si n change(n.tex<>3) et un joueur veut cliqué sur une case qui est reserve un msgbox affiche construction impossible

    si n.tex=4
    le joueur bleu clique et par suite la case cliqué aura un backcolor bleu
    et par suite la case cliqué ainsi son entourage sera lui reserve c'adire si n change(n.tex<>4) et un joueur veut cliqué sur une case qui est reserve un msgbox affiche construction impossible
    NB:joueur bleu Mat(k, l) = "BB"
    jaune "jj"
    vert "vv"
    rouge"rr"
    NB2 :entourage=entourage indiqué precedement

  7. #7
    Membre à l'essai
    Homme Profil pro
    futur ingenieur genie electrique
    Inscrit en
    Février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : Février 2013
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    voici le code j'ai ecrit mais ca nmarche pas
    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
    43
     If Btn(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)).BackgroundImage IsNot empty.BackgroundImage Then
                Form10.Show()
            Else
     
     
                If N.Text = 1 Then
                    If Mat(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)) = ("RR" Or "JJ" Or "VV") Then
                        Form10.Show()
                    Else
                        Btn(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)).BackgroundImage = B.BackgroundImage
                    End If
                    MarqueBBMatricebleu(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1))
     
     
                ElseIf N.Text = 2 Then
                    If Mat(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)) = ("BB" Or "JJ" Or "VV") Then
                        Form10.Show()
                    Else
                        Btn(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)).BackgroundImage = R.BackgroundImage
                    End If
                    MarqueBBMatricerouge(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1))
     
     
                ElseIf N.Text = 3 Then
                    If Mat(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)) = ("RR" Or "BB" Or "VV") Then
                        Form10.Show()
                    Else
                        Btn(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)).BackgroundImage = J.BackgroundImage
                    End If
                    MarqueBBMatricejaune(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1))
     
     
                ElseIf N.Text = 4 Then
                    If Mat(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)) = ("BB" Or "JJ" Or "RR") Then
                        Form10.Show()
     
                    Else
                        Btn(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)).BackgroundImage = V.BackgroundImage
                    End If
                    MarqueBBMatricevert(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1))
     
                End If
            End If

  8. #8
    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
    J'ai préparé un exemple

    Définition form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Const XMax As Integer = 7
        Const YMax As Integer = 7
        Const KConstruitRouge As String = "CR"
        Const KReserveRouge As String = "RR"
        Const KConstruitVert As String = "CV"
        Const KReserveVert As String = "RV"
        Const KConstruitBleu As String = "CB"
        Const KReserveBleu As String = "RB"
        Const KConstruitJaune As String = "CJ"
        Const KReserveJaune As String = "RJ"
     
        Dim Mat(XMax, YMax) As String
        Dim Btn(XMax, YMax) As Button
        Dim NumJoueur As Integer
    Les méthodes de mise en oeuvre,
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
        Private Sub DynamicButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            MarqueMatrice(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1))
        End Sub
     
        Sub MarqueMatrice(ByVal i As Integer, ByVal j As Integer)
            Dim XDebut As Integer
            Dim XFin As Integer
            Dim YDebut As Integer
            Dim YFin As Integer
            Dim Construction As String
            Dim Reservation As String
            Dim couleur As Color
     
            ' Détermine les couleurs à traiter
            Select Case txtNumJoueur.Text
                Case "1"
                    Construction = KConstruitRouge
                    Reservation = KReserveRouge
                    couleur = Color.Red
                Case "2"
                    Construction = KConstruitJaune
                    Reservation = KReserveJaune
                    couleur = Color.Yellow
                Case "3"
                    Construction = KConstruitVert
                    Reservation = KReserveVert
                    couleur = Color.Green
                Case "4"
                    Construction = KConstruitBleu
                    Reservation = KReserveBleu
                    couleur = Color.Blue
                Case Else
                    MessageBox.Show("Joueur inconnu")
                    Exit Sub
            End Select
            ' droit de construire
            If Not (Mat(i, j) = Reservation Or Mat(i, j) = "") Then
                MessageBox.Show("Construction impossible")
                Exit Sub
            End If
            ' colore le bouton
            DirectCast(Me.Controls("Button" & i.ToString & j.ToString), Button).BackColor = couleur
            ' calcule la zone matrice
            If i > 0 Then XDebut = i - 1
            If i < XMax Then XFin = i + 1 Else XFin = i
            If j > 0 Then YDebut = j - 1
            If j < YMax Then YFin = j + 1 Else YFin = j
            ' marque les réservations
            For k As Integer = XDebut To XFin
                For l As Integer = YDebut To YFin
                    If Not Mat(k, l).Contains("C") Then Mat(k, l) = Reservation
                Next
            Next
            ' marque la construction
            Mat(i, j) = Construction
        End Sub
    Je n'ai pas eu le temps de voir ton code, je regarderai un peu plus tard.

    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.

  9. #9
    Membre à l'essai
    Homme Profil pro
    futur ingenieur genie electrique
    Inscrit en
    Février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : Février 2013
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    desolé une derniere chose si je veut remplacer le backcolr par des backgroundimage quesque je fai
    NB
    B.backgroundimage=tof voiture bleu
    R.backgroundimage=tof voiture rouge
    J.backgroundimage=tof voiture jaune
    V.backgroundimage=tof voiture vert
    mercii pour votre aide

  10. #10
    Membre à l'essai
    Homme Profil pro
    futur ingenieur genie electrique
    Inscrit en
    Février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : Février 2013
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    c'est bon probleme resolu
    merci mon cher ami c'est un tré beau travail

  11. #11
    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
    De rien,
    Pensez à mettre en résolu.
    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.

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

Discussions similaires

  1. [VBA-E] bouton dynamique avec fonction
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 38
    Dernier message: 06/02/2006, 12h43
  2. changer image d'un bouton dynamiquement
    Par Dnx dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/11/2005, 13h03
  3. [VB.Net] usercontrol static et bouton dynamique
    Par krest dans le forum ASP.NET
    Réponses: 19
    Dernier message: 26/07/2005, 17h43
  4. [Forms] Bouton dynamique
    Par lafouine dans le forum Forms
    Réponses: 4
    Dernier message: 20/07/2005, 10h24
  5. Réponses: 2
    Dernier message: 20/01/2004, 14h27

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