Gestion de bouttons [Résolu]

Signaler
Messages postés
59
Date d'inscription
mardi 29 janvier 2008
Statut
Membre
Dernière intervention
5 mars 2010
-
Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010
-
Salut tout le monde ,
J ai 20
bouttons, quand je click sur l'un d'eux, le boutton selectionné est
sous forme de " FlatStyle.Flat " mais quand je click sur un autre
boutton il doit etre aussi sous forme de " FlatStyle.Flat " et en meme
temp l autre revient a son etat initial " FlatStyle.Standard "

j ai essayer de creer un variable "Nboutton" qui recoit le nombre de boutton selectionné:

en cliquant sur le boutton 1 -----> Nboutton=1






en cliquant sur le boutton 2 -----> Nboutton=2






en cliquant sur le boutton 3 -----> Nboutton=3
ect...

puis j ai mis :

If nposte = "1" Then
            Button3.FlatStyle = FlatStyle.Flat
        Else
            Button3.FlatStyle = FlatStyle.Standard
        End If
 
et comme ca pour tout les autres bouttons, mais malheuresement ca n a pas marché
merci de me guider

10 réponses

Messages postés
59
Date d'inscription
mardi 29 janvier 2008
Statut
Membre
Dernière intervention
5 mars 2010

merci bien pr vos conseils finalement j ai fais cette fonction " style_standard() que j appel pr chaque boutton :
 Sub style_standard()
        Button_2.FlatStyle = FlatStyle.Standard
        Button_3.FlatStyle = FlatStyle.Standard
        Button_4.FlatStyle = FlatStyle.Standard
        Button_5.FlatStyle = FlatStyle.Standard
        Button_6.FlatStyle = FlatStyle.Standard
        Button_7.FlatStyle = FlatStyle.Standard
        Button_8.FlatStyle = FlatStyle.Standard
        Button_9.FlatStyle = FlatStyle.Standard
        Button_10.FlatStyle = FlatStyle.Standard
        Button_11.FlatStyle = FlatStyle.Standard
        Button_12.FlatStyle = FlatStyle.Standard
        Button_13.FlatStyle = FlatStyle.Standard
        button_14.FlatStyle = FlatStyle.Standard
        button_15.FlatStyle = FlatStyle.Standard
        button_16.FlatStyle = FlatStyle.Standard
        button_17.FlatStyle = FlatStyle.Standard
        button_18.FlatStyle = FlatStyle.Standard
        button_19.FlatStyle = FlatStyle.Standard
        button_20.FlatStyle = FlatStyle.Standard
        Button_1.FlatStyle = FlatStyle.Standard
       
    End Sub
et c comme ca que je l appel :

Me.style_standard()
Button_1.FlatStyle = FlatStyle.Flat
Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

Salut
cela doit tenir au test

If nposte = "1" Then

CNTJC
Messages postés
59
Date d'inscription
mardi 29 janvier 2008
Statut
Membre
Dernière intervention
5 mars 2010

nn ca na pas marchré cette methode et quand j ai utilisé la boucle " while " ca plante le programme
Messages postés
12
Date d'inscription
mardi 19 décembre 2006
Statut
Membre
Dernière intervention
3 mai 2009

qu est ce ke vous voulez dire par nposte?
Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

bonjour
si tu joins la partie de codes qui plante ton projet, ce serai plus simple pour pouvoir t'aider éventuellement
salut

CNTJC
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
tu dois faire avec tes boutons un groupe de controles ( tous tes boutons ont le même nom et sont indicés de 0 à 19
tu aura Button(0), button(1), Button(2), ...........................button(18), button19

Ensuite crée une procédure

Private Sub Button_click(index as Integer)
      Dim i as integer
      For i = 0 to 19
            Button(i).FlatStyle = FlatStyle.Standard
      Next i
      button(index).FlatStyle = FlatStyle.Flat
             
End Sub

La procédure fait ce travail
tu clicques sur un des 20 boutons : on met les 20 boutons FlatStyle.Standard
on met celui que tu as clicqué en FlatStyle.Flat

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Messages postés
59
Date d'inscription
mardi 29 janvier 2008
Statut
Membre
Dernière intervention
5 mars 2010

la partie qui plante c'est ca:



                 nposte = 1
                While nposte = "1"
                 Button_1.FlatStyle = FlatStyle.Flat
        End While




je te remercie GALAIN
pour ta reponce detaillée oui moi j ai mis tout les bouttons dans un groupbox et ils sont només de button_1, button_2..............button_20 mais j ai pas bien compris cette boucle autant que debutant




j ai essayé cette methode mais il n accepte pas cette expression "button(i)"
Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

salut
dans la boucle While, il n'y a pas de sortie ce qui fait tourner sans fin celle-ci et qui est probablement la cause du plantage. Pour sortir de la boucle "





nposte


" doit avoir sa valeur changée.
Il faut autant que possible, déclarer les variables dans un type approprié.
ex:  Dim nposte As Integer
       ou Dim nposte As String
 cela évitera les erreurs de Types qui seront détectées à la Compilation et non pas en Exécution

       nposte = 1

       While nposte = "1"
                 Button_1.FlatStyle = FlatStyle.Flat
       End While

a suivre
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
Salut cnt

Sur ta feuille tu supprimes tes 20 boutons
1° Ensuite tu poses un premier bouton appelé Button
2° Ensuite Click droit sur le contrôle Button créé et tu fais Copier
3° Click droit sur la feuille et tu fais Coller
4°Tu acceptes la création d'un groupe de contrôle
5° Ainsi tu as 2 boutons : le premier s'appelle Button(0) et le second Button(1)
ensuite tu retournes au point 2° et tu crées un Nième boutons

Lorsque tu as créé ton Button(19) tu as tes 20 boutons ( de 0 à 19)

Ne confonds pas groupe de contrôles et Groupbox :le premier contient un tableau de contrôles tous identiques indicés de 0 à N-1 ( N = nombres de contrôles) alors que la GroupBox n'est qu'un container qui contient d'autres contrôles.

Ensuite tu Double-clicques sur un des Boutons créés et cela t'ouvre l'éditeur avec la Sub Button_Click(index as integer)
tu y mets le code indiqué dans mon post précédent et cela devrait être bon

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

Salut
Je n'ai jusqu'à présent programmé qu'en VB6 et ton exemple me permet de débuter en codage VB.Net que j'ai utilisé chez un ami.
Je propose cette solution qui fonctionne en VB.Net 2003

' ****  à coder pour tous les boutons **** 
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a$
        a = sender.Name
        Style_Standard(a)
    End Sub

' ***** Procédure générale applicable aux boutons ******
    Private Sub Style_Standard(ByVal nom As String)
        Dim Ctl As Control, Bouton As Button
        For Each Ctl In Me.Controls
            If TypeOf Ctl Is Button Then
                Bouton = Ctl
                If nom = Ctl.Name Then
                    Bouton.FlatStyle = FlatStyle.Flat
                Else
                    Bouton.FlatStyle = FlatStyle.Standard
                End If
            End If
        Next
    End Sub

J'attends un avis de ta part
Tchao
CNTJC