Evenement paint [Résolu]

Messages postés
3238
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
14 mars 2018
- 6 févr. 2012 à 14:56 - Dernière réponse :
Messages postés
3238
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
14 mars 2018
- 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
Messages postés
3238
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
14 mars 2018
- 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é 87 internautes ce mois-ci

Commenter la réponse de cs_ShayW
Messages postés
3238
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
14 mars 2018
- 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
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 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
Messages postés
3238
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
14 mars 2018
- 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.