Déplacer et remplacer un objet à l'infini en VB

Résolu/Fermé
Utilisateur anonyme - Modifié par minotaugames le 30/12/2015 à 23:18
 Utilisateur anonyme - 3 janv. 2016 à 00:39
Bonjour,

Je travaille en se moment sur une application "simple" à utiliser, mais pas autant à programmer, voici le sujet puis mon problem :

Sur mon application, il est possible de déplacer des picturbox ayant la forme d'un cube(minecraft dans ce cas, en 2D)
jusque l, aucun sousis;

Ici, sa devien plus dificil, car j'ais mis un panel en guise de "boite à outil" dans l'interface, et le but serait que lorsque l'ons prend un "bloc" pour le déposer dans le décor, un autre le remplace, comme en dans l'interface en VB, quand on prend un bouton, une picturbox,... l'objet est déplacable à l'infini...

Voici le code de ma picturbox qui est déplacable :
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
        Dim lHwnd As Int32
        lHwnd = PictureBox1.Handle
        If lHwnd = 0 Then Exit Sub
        ReleaseCapture() 'A été déclarer
        SendMessage(lHwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&) ' A été déclarer
    End Sub


Et voici le code pour redoubler un objet (que je connais, mais dont je n'arrive pas à utiliser si c'est le bon code pour ça pour mon programme):
 Private Sub PictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox1.Click
        Dim bloc1 As New PictureBox()
        bloc1.Image = PictureBox1.Image 'c'est donc la même image que la "vrai"
        Me.Panel1.Controls.Add(bloc1)
        bloc1.Show()

    End Sub



Voilà :D
Merci d'avoir pris la peine de lire un si gros message, mais j'ai chercher partout, et j'ai pas trouver...
Cordialement VANAUR
A voir également:

3 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
30 déc. 2015 à 23:17
Pour mémoriser les PictureBox crées, utilises une collection : List(of PictureBox)

Pour ajouter le code de gestion de déplacement, regardes AddHandler et RemoveHandler.
Ensuite, il te faudra utiliser le paramètre Sender pour agir sur le bon objet.
0
Utilisateur anonyme
31 déc. 2015 à 17:25
Merci d'avoir si vite répondu :)

-Mais quel est la difference entre VB "simple" et le VB.net ?
-Comment puis-je ''coder'' les conseils que tu m'as donner, je n'en ais jamais entendu parler...

-J'ai essayer avec un code donner par MSDN d'ajouter un déplacement :
AddHandler Obj.XEvent, AddressOf Me.XEventHandler

à mon profit :
AddHandler PictureBox.XEvent, AddressOf Me.PictureBox1

Mais ca ne fonctionne pas,...

Bref il ne me semble pas connaître les codes piste que tu m'as données, j'ai un peu chipoter mais, cela n'a rien fait, le programme m'affiche le message d'erreur.
Merci encore, et à bientôt :D
Cordialement VANAUR
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
1 janv. 2016 à 01:01
Quand on parle de VB, c’est générique, ça peut être VB6, VBA, VBS, ou VB.NET.

Nommer tes contrôles avec un préfixe te permet de mieux les retrouver dans le code, pat exemple BtnValider est plus explicite que Button1.

Il faut mettre le nom de la sub de gestion de l'événement et le nom de l'événement, par exemple :
AddHandler PictureBox2.Click, AddressOf Me.PictureBox2_Click.
0
Utilisateur anonyme
3 janv. 2016 à 00:39
Merci pour tes conseils, maintenant, c'est plus claire et grâce à toi, j'ai pus chercher et trouver ce dont j'avais besoin, plus de clarté, ets...

Merci :D

Cordialement, VANAUR
0