DragDrop

hybrid67210 Messages postés 2 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 18 février 2009 - 17 févr. 2009 à 13:48
hybrid67210 Messages postés 2 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 18 février 2009 - 18 févr. 2009 à 12:08
Bonjour, je suis débutant en VB et je dois rendre un projet dans une semaine. Je dois faire un puzzle tout simplement. Seulement je bloque sur le dragdrop, j'ai beau chercher des codes, sur les forums etc... j'y arrive pas.
Alors je vous explique mon problème.
Voici un bout de mon code :

    Dim puzzle(59) As PictureBox 'tableau de 60 picturebox qui contiendront les morceaux de l'image
    Dim reponse(59) As PictureBox
    Dim stockimages As New ArrayList() 'tableau qui contient les morceaux de l'image avant le mélange

 'Procédure qui découpe l'image en 6*10 et répartie aléatoirement les morceaux
    Public Sub creation_puzzle(ByVal image_a_decouper As Image)

        'création de la grille : création de picture box contenant chaque morceaux de l'image
        For i = 0 To 9
            For l = 0 To 5
                puzzle(m) = New PictureBox
                puzzle(m).Top = 12 + l * 45
                puzzle(m).Left = 12 + i * 37
                puzzle(m).Width = 32
                puzzle(m).Height = 40
                puzzle(m).Tag = m + 1
                m = m + 1
            Next
        Next

        'création de la grille permettant de reconstituer le puzzle
        For s = 0 To 9
            For t = 0 To 5
                reponse(y) = New PictureBox
                reponse(y).Top = 300 + t * 40
                reponse(y).Left = 12 + s * 32
                reponse(y).Width = 32
                reponse(y).Height = 40
                reponse(y).BorderStyle = BorderStyle.FixedSingle
                reponse(y).AllowDrop = True
                reponse(y).Tag = y + 1
                y = y + 1
            Next
        Next

        'double boucle qui va générer les morceaux de l'image pour former le puzzle et les ajouter à la liste
        For k = 0 To 9
            For j = 0 To 5
                stockimages.Add(Form1.decoupe_image(image_a_decouper, 40, 32, k * 32, j * 40))
                stockimages(z).Tag = z
                z = z + 1
            Next
        Next

        nombre_images = 60
        For q = 0 To 59
            r = (Int(Rnd() * nombre_images)) 'génère un nombre aléatoire entre 0 et 60
            puzzle(q).Image = stockimages(r) 'copie l'image sélectionnée au hasard dans la liste dans une case du puzzle
            puzzle(q).Tag = stockimages(r).Tag
            stockimages.RemoveAt(r) 'retire l'image du tableau pour ne pas la réafficher
            nombre_images -= 1 'décrémente le nombre d'images de 1
            Me.Controls.Add(puzzle(q)) 'affichage de la picturebox contenant l'image
            Me.Controls.Add(reponse(q))

            r = 0 'réinitialisation du nombre aléatoire
        Next

    End Sub

Donc en fait, au sein d'une boucle je crée mes 60 picturebox pour répartir les morceaux d'images au hasard et les 60 pour pouvoir reconstituer le puzzle. Et en fait à part faire des procédures pour chaque picturebox, ce qui est long et fastidieux, je ne vois pas comment faire vu la manière dont j'ai créé mes picturebox. J'ai vu quelque chose comme AddHandlers mais je ne sais pas à quelle procédure l'appliquer.

Vous pouvez m'aider?

1 réponse

hybrid67210 Messages postés 2 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 18 février 2009
18 févr. 2009 à 12:08
up! besoin d'aide svp
Rejoignez-nous