cs_snakeon
Messages postés59Date d'inscriptionmardi 29 janvier 2008StatutMembreDernière intervention 5 mars 2010
-
13 mars 2009 à 00:24
cnt
Messages postés219Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention20 décembre 2010
-
17 mars 2009 à 15:31
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
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.
cs_snakeon
Messages postés59Date d'inscriptionmardi 29 janvier 2008StatutMembreDernière intervention 5 mars 2010 14 mars 2009 à 02:57
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)"
cnt
Messages postés219Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention20 décembre 20101 14 mars 2009 à 10:52
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
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.
cnt
Messages postés219Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention20 décembre 20101 17 mars 2009 à 15:31
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