MsgBox("Cette couleur a déjà été choisie par un autre joueur.", MsgBoxStyle.Exclamation)
ColorDialog1.ShowDialog()
End While
PictureBoxCouleur8.BackColor = ColorDialog1.Color
End Sub
J'utilise 8 Boutons de ce genre à la seule différence que le picturebox
associé n'est pas le même et que si par exemple c'est le bouton 8 qui
appelle la procédure il faut enelever le picturebox8 correspondant
J'ai 8 boutons donc 8fois ce code dans ma form c'est pas génial ^^ y a-t-il une solution?
J'avais pense une faire une sub et à l'associer aux 8 évenement click
des boutons mais je ne sais pas comment faire pour savoir quel
événement à appeler la sub
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 24 nov. 2007 à 15:02
Je ne connais pas .Net, mais j'imagine que tu peux créer des groupes de contrôles, donc qui utilisent un Index
ButtonCouleur(5) plutôt que ButtonCouleur5
Tu n'aurais donc qu'une seule procédure Click et tu n'aurais qu'à gérer l'Index du contrôle qui a été pesé. Éventuellement, tu pourrais créer une Function à laquelle tu passes en paramètre l'Index du bouton et autres détails qui serviraient à faire tes vérifications.
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 24 nov. 2007 à 17:42
Salut ,
Je viens de bidouiller un truc en VB6, mais je ne sais pas ce que cela peut donner en .net, à essayer....lol
Private Sub Button_Click()
' Affichage de la boite couleur
ColorDialog1.ShowDialog()
' Appel sub et attent résultat
If TestColor(ColorDialog1.Color) Then
TaPictureBox.BackColor = ColorDialog1.Color
Else
MsgBox("Cette couleur a déjà été choisie par un autre joueur.", MsgBoxStyle.Exclamation)
ColorDialog1.ShowDialog()
End If
End Sub
Private Function TestColor(MyColorTest As Long) As Boolean
' Déclaration
Dim Ctrl As Control
' Cherche dans le Formulaire les picturebox
' pour pouvoir testé la couleur
For Each Ctrl In TonFormulaire
If TypeOf Ctrl Is PictureBox Then
' Test couleur
If MyColorTest = Ctrl.BackColor Then
' test faux
TestColor = False
' on sort
Exit Function
End If
End If
Next Ctrl
' Libération
Set Ctrl = Nothing
' Si aucune couleur est pareille que celle de
' ColorDialog1.Color, renvoie True
TestColor = True
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 24 nov. 2007 à 18:39
Rectif...
Private Sub Button_Click()
' Affichage de la boite couleur
ColorDialog1.ShowDialog()
' Appel sub et attent résultat
If TestColor(ColorDialog1.Color) Then
TaPictureBox.BackColor = ColorDialog1.Color
Else
MsgBox("Cette couleur a déjà été choisie par un autre joueur.", MsgBoxStyle.Exclamation)
<strike>ColorDialog1.ShowDialog()</strike> End If
End Sub
A+
Exploreur
Linux a un noyau, Windows un pépin
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 24 nov. 2007 à 18:49
Bonsoir,
Il me semble, surtout qu'il s'agit à ce que je vois d'un jeu et de couleurs choisies par les joueurs,que la démarche n'est pas vraiment bonne (il serait totalement impossible, par exemple, de distinguer, en RGB, la couleur 0,0,0 de
la couleur 0,0,1, pourtant différentes ..
Le mieux serait à mon avis de procéder par un tableau de longs représentant les couleurs possibles et d'éliminer du
tableau la couleur choisie par un joueur.
A chaque choix : présentation des couleurs restant disponibles, sous forme de ce que l'on veut (labels, images, picturebox,...) avec son long associé (dans la propriété tag, par exemple)..
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 25 nov. 2007 à 10:40
salut à tous,
dans l'ordre :
*pas de groupe en .net
*le format .Color étant du OLE_COLOR, 0,0,0 sera bien reconnu différemment que 0,0,1
et le code demandé, beh il faut cumuler ta méthode et la proposition de jmfmarques (tableau)
comme on ne sait pas ce qui a changé entre temps, forcément il faudra re-créer le tableau à chaque fois
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp