Public Class Form1 Private Pictjeux As New List(Of PictureBox) ' la collection de Picturebox Public IndexCase as Integer ' l'index d'une PictureBox ' Affichage de la form Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim Pict As PictureBox Dim PictLeft As Integer, PictTop As Integer ' coordonnées X et Y pour les cases Dim Index As Integer = 0 ' les 64 cases du jeu Pict = Nothing PictTop = 58 ' position Y de la première case For row = 0 To 7 ' 8 lignes PictLeft = 78 ' position X de la première case For col = 0 To 7 ' 8 colonnes Pict = New Picturebox ' une nouvelle case à déposer With Pict .Name = "Pictjeux" & (Index).ToString .BackColor = Color.White .BorderStyle = BorderStyle.FixedSingle .SizeMode = PictureBoxSizeMode.StretchImage .Size = New Size(50, 50) .Location = New Point(PictLeft, PictTop) .Enabled = True End With Pictjeux.Add(Pict) ' on ajoute la case à la collection AddHandler Pict.MouseDown, AddressOf PictMouseDown ' évènement MouseDown pour sélection case Controls.Add(Pict) ' on ajoute la case sur la Form PictLeft = PictLeft + Pict.Width ' suivante case à droite Index = Index + 1 Next PictTop = PictTop + Pict.Height ' case suivante en début de nouvelle ligne Next End Sub ' Sélection d'une case Private Sub PictMouseDown(sender As Object, e As MouseEventArgs) Dim IndexCase As Integer = Convert.ToInt32((DirectCast(sender, PictureBox).Name).Substring(8)) ' Index case sélectionnée ' On met toutes les cases en blanc For i = 0 to 63 Pictjeux(i).BackColor = Color.White Next ' sauf celle-ci en rouge PictJeux(IndexCase).BackColor = Color.Red End Sub End Class
Option Strict On Public Class Form1 ' Définition des variables Dim CouleurSelectionnee As Image Private Sub PictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox1.Click CouleurSelectionnee = Me.PictureBox1.BackgroundImage End Sub Private Sub PictureBox_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox2.Click, PictureBox3.Click, PictureBox4.Click, PictureBox5.Click, PictureBox6.Click 'a adapter pour 40 Dim pictTmp As PictureBox = DirectCast(sender, PictureBox) For Each ctrl As Control In Me.Controls If TypeOf ctrl Is PictureBox Then If ctrl.Name = "PictureBox1" Then 'rien Else ctrl.BackgroundImage = Nothing End If End If Next pictTmp.BackgroundImage = CouleurSelectionnee End Sub End Class
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate imageATransferer As Image = Nothing Private Sub PictureBox1_Click(sender As Object, e As EventArgs) _ Handles PictureBox1.Click, PictureBox2.Click, PictureBox3.Click 'etc.... on abonne chaque PictureBox Dim picBoxCliquee As PictureBox = DirectCast(sender, PictureBox) If imageATransferer Is Nothing Then 'y'a pas d'image sauvegardée imageATransferer = picBoxCliquee.Image Else 'y'a une image sauvegardée picBoxCliquee.Image = imageATransferer imageATransferer = Nothing 'on vide pour le prochain click End If End Sub
AddHandler Me.pictureBox1.Click, AddressOf Me.PictureBoxClick
en modifiant moi même le fichier .designer.vb en mode tout à la main.
existe-t-il un moyen de savoir quelle était l'image source car pour mon appli.....en passant une variable en même temps peut-être mais qui s'affecte à l'image de destination ?
J'ai l'impression de pas être très clair dans ce que je vous demande alors que dans ma tête c'est plutôt compréhensible.
Par contre,
existe-t-il un moyen de savoir quelle était l'image source car pour mon appli. j'ai besoin de testé si la personne a mis du rouge, du bleu, ... ?
en passant une variable en même temps peut-être mais qui s'affecte à l'image de destination ?
j'ai juste demandé si en plus de copier l'image il y'avait possibilité de passer une variable Integer en même temps que l'image source.et non, t'as pas écrit integer. Et même si tu avais juste ajouté ce mot, je n'aurais pas compris ta demande (bon je ne l'aurais pas mal pris, ce qui aurait déjà été ça...)
Ça c'est une solution, et en ce qui me concerne, elle ne me parrait pas logique.
c'est pour cela que je pense passer une variable en même temps qui s'affecterait à l'image réception afin que lors du clic sur le bouton de vérification je puisse contrôler toutes les variables et ainsi valider ou pas les choix.
Private imageATransferer As Image = Nothing Private Sub PictureBox1_Click(sender As Object, e As EventArgs) _ Handles PictureBox1.Click, PictureBox2.Click, PictureBox3.Click 'etc.... on abonne chaque PictureBox Dim picBoxCliquee As PictureBox = DirectCast(sender, PictureBox) If imageATransferer Is Nothing Then 'y'a pas d'image sauvegardée imageATransferer = picBoxCliquee.Image Else 'y'a une image sauvegardée If TestDuChoixSelonTesCritères = True Then picBoxCliquee.Image = imageATransferer imageATransferer = Nothing 'on vide pour le prochain click End if End If End Sub
Private imageATransferer As Image = Nothing Private Sub PictureSource_Click(sender As Object, e As EventArgs) _ Handles PictureBox1.Click, PictureBox2.Click, PictureBox3.Click 'etc.... on abonne chaque PictureBox Dim picBoxCliquee As PictureBox = DirectCast(sender, PictureBox) imageATransferer = picBoxCliquee.Image'on charge l'image quoi qu'il arrive, ça laisse la possibilité au joueur de changer de choix End Sub Private Sub PictureDestination_Click(sender As Object, e As EventArgs) _ Handles PictureBox10.Click, PictureBox11.Click, PictureBox12.Click 'etc.... on abonne chaque PictureBox If Not (imageATransferer Is Nothing) Then 'y'a une image sauvegardée If TestDuChoixSelonTesCritères = True Then picBoxCliquee.Image = imageATransferer imageATransferer = Nothing 'on vide pour le prochain click End if End If End Sub
imageATransferer = Nothingque l'image soit juste ou pas, ça dépend de ton game play.