Mise de sender (picture box) [Résolu]

Zag182 24 Messages postés mercredi 17 octobre 2007Date d'inscription 2 mars 2011 Dernière intervention - 25 mai 2009 à 16:57 - Dernière réponse : Zag182 24 Messages postés mercredi 17 octobre 2007Date d'inscription 2 mars 2011 Dernière intervention
- 26 mai 2009 à 13:48
Bonjour,
Je créée des PictureBox a partir d'un bouton.(dim Pic as new picturebox => Pic1, Pic2, Pic3....)
J'enregistre leurs positions dans un .INI
Un handles mouseup me permet de les faires bouger (il sait quelle picturebox bouge grâce au "sender").
Un coin de l'écran me permet de supprimer une picturebox.(Me.Controls.Remove(sender))
Quand je supprime la picture cela remet a jour mon point INI pour que le nom soit à la suite
(Pic1, <strike>Pic2</strike>,Pic3=>Pic1,Pic2)
Mon .INI fait c'est réglage correctement en suprimant les paramètres voulu mais sur ma fenetre je n'arrive pas a dire
que Pic3 devient Pic2... Je suis obligé de redémarrer mon programme. Et si jessaie de bouger pic3 après la suppression de pic2 le programme plante.
Comment faire pour qu'il detecte bien que mon Pic3 est devenu Pic2???
Sinon Comment puis-je faire pour supprimer un Pic en ligne de code?
 j'ai essayé : me.controls.remove(CType("Pic" & i , PictureBox))   (i étant un le numéro de Pic voulu numéro) mais cela ne marche pas.

Merci d'avance
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 26 mai 2009 à 12:26
3
Merci
Si ta form ne contient que des picturebox créé dynamiquement tu peux faire

'Supprime le dernier élément créé du formulaire
Me.Controls.RemoveAt(Me.Controls.Count - 1)

Sinon pour supprimer un cotrôle à partir d'une procédure évenementielle de celui-ci :

'Dans le cas ou "sender" est le PictureBox
Dim index As Integer = Me.Controls.IndexOf(sender)
Me.Controls.RemoveAt(index)

Pour retrouver un comtrôle d'après son nom de nimporte ou dans la feuille:

Dim pBox As PictureBox = Me.Controls("pic" & i)
'les contrôles ayant été déclaré‚ avec le nom "pic" comme suit:
Dim _pBox As New PictureBox
_pBox.Name = "pic" & Me.Controls.Count
Me.Controls.Add (_pBox)

Voila @+

Merci Mayzz 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 81 internautes ce mois-ci

Commenter la réponse de Mayzz
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 25 mai 2009 à 20:01
0
Merci
Si tu tien à faire disparaitre un PictureBox créé dynamiquement alors utilise Dispose

Sub PictureBox_Click (sender As Object, e As Sytem.EventArgs)
    Dim p As PictureBox = sender
    Controls.Remove (p)
    p.Dispose
End Sub

Mais je sais pas si j'ai bien compris le but de ton code, un petit post serait le bienvenue
Commenter la réponse de Mayzz
Zag182 24 Messages postés mercredi 17 octobre 2007Date d'inscription 2 mars 2011 Dernière intervention - 26 mai 2009 à 09:38
0
Merci
Au faite ce que je voudrais, c'est qu'avec une ligne de code je sélectionne sender+1 ou sender+i
Sender étant des picturebox créer via un bouton!!!

Ton p.Dispose ça fait qui exactement?
Commenter la réponse de Zag182
Zag182 24 Messages postés mercredi 17 octobre 2007Date d'inscription 2 mars 2011 Dernière intervention - 26 mai 2009 à 11:02
0
Merci
Au faite ce que je voudrais c'est pouvoir supprimer le dernier PictureBox créée, j'ai essayé:
Controls.remove("pic" & i)                             i étant le numéro du dernier PictureBox créée!!!
Controls.remove(Ctype("pic" & i, PictureBox))
Controls.remove(Ctype("pic" & i, PictureBox).name)
Controls.remove(sender+i-sender)

Enfin plein de chose mais ça ne marche pas.
Commenter la réponse de Zag182
Zag182 24 Messages postés mercredi 17 octobre 2007Date d'inscription 2 mars 2011 Dernière intervention - 26 mai 2009 à 13:48
0
Merci
Merci beaucoup!! sa fonctionne!!!
Commenter la réponse de Zag182

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.