Evenement paint [Résolu]

cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 6 févr. 2012 à 14:56 - Dernière réponse : cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention
- 6 févr. 2012 à 18:05
Bonjour à tous

j'ai une liste de picturebox listcard

je veux que si je clique un des picturebox
l'encadrer
aussi quand je clique je modifie le tag
de la picturebox à "click"
j'ai écrit la sub suivante
Private Sub mark(ByVal gr As System.Drawing.Graphics)
  Dim rect As New Rectangle
  Dim mypen As New Pen(Color.Blue, 4)
  For Each pic In listcard
     rect.X = 0
     rect.Y = 0
     rect.Width = pic.Width - 4
     rect.Height = pic.Height - 4
     If pic.Tag.ToString = "click" Then
         gr.DrawRectangle(mypen, rect)
      End If
   Next
 End Sub

tout marche bien à chaque click la picturebox
est encadré

si je minimise la fenetre et la reouvre
tous les pictureboxs sont encadrés

Merci
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 6 févr. 2012 à 17:53
3
Merci
J'ai trouvé l'erreur
il faut dessiner les rectangles dans le control
container des picturebox
il faut appeler la sub mark dans l'évenement
paint du control container des pictureboxes
donc


Private Sub mark(ByVal gr As System.Drawing.Graphics)
   Dim rect As New Rectangle
   Dim mypen As New Pen(Color.RoyalBlue, 4)
   For Each pic In listcard
     If pic.Tag.ToString = "click" Then
      'on encadre autours du picturebox
       rect.X = pic.Left
       rect.Y = pic.Top
       rect.Width = pic.Width
       rect.Height = pic.Height
       gr.DrawRectangle(mypen, rect)
     End If
   Next
End Sub


Private Sub Panelcarte_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panelcarte.Paint
        mark(e.Graphics)
    End Sub

Merci cs_ShayW 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de cs_ShayW
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 6 févr. 2012 à 15:40
0
Merci
aussi
la sub mark est appelé dans l'évenement paint
des picturebox
AddHandler .Paint, AddressOf picpaint

Private Sub picpaint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
        mark(e.Graphics)
    End Sub
Commenter la réponse de cs_ShayW
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 6 févr. 2012 à 17:46
0
Merci
Bonjour, ShayW
J'aurais tendance à penser que c'est dans l'évènement click qu'il te faut chercher la maladresse, car tout donne à penser que toutes les pictureboxes se retrouvent avec "click" dans leur tag.
Enfin : je dis peut-être n'importe quoi, mais vérifie quand-même.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 6 févr. 2012 à 18:05
0
Merci
Bonjour Ucfoutu

non c'est bon
Commenter la réponse de cs_ShayW

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.