Evenement paint

Résolu
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 6 févr. 2012 à 14:56
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 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

4 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
6 févr. 2012 à 17:53
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
3
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
6 févr. 2012 à 15:40
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 févr. 2012 à 17:46
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
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
6 févr. 2012 à 18:05
Bonjour Ucfoutu

non c'est bon
0
Rejoignez-nous