Bonjour a tous jai une petite question,
j'aimerais savoir si c'est possible de dessiner sur une pictureBox ?
et si oui comment ?
Merci par avance
Bonjour a tous jai une petite question,
j'aimerais savoir si c'est possible de dessiner sur une pictureBox ?
et si oui comment ?
Merci par avance
tu devrais lire le tutoriel sur la création de userControl
Et par expérience, il est "très" mauvais de vouloir dessiner sur une pictureBox..; parce qu'on peut le faire, mais que ce n'est pas vraiment la meilleure solution...
Surtout qu'une picture Box, se contente uniquement d'appeler les méthodes DrawImage de la classe Graphics() avec les paramètres qui conviennent suivant le choix du mode (stretch, etc...)
Hello Monz,
J'ai lu le tutoriel mais je ne vois pas le rapport meme après ton intervention.
Peut tu me dire en quoi ce n'est pas la bonne solution et donc quelle solution est la meilleure ?
Merci
salut
Voici un petit exemple qui dessine une line
Bonne chance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4Graphics g = PictureBox.CreateGraphics(); Pen pen = new Pen(Color.Red); g.DrawLine(pen,0,0,PictureBox.Width,PictureBox.Height); // tracer la 1 ère diagonale![]()
voilà typiquement le genre d'exemple utile, mais qui ne sont vraiment qu'une façon "horrible" de faire les choses... Désolé Bobmidou, mais utiliser le CreateGraphics est quelque chose d'assez "vilain" si on veut faire une programmation vraiment joli...
L'idéal pour faire ce que tu fais, est de faire un userControl, hérite de la picturebox si cela te convient, et de surcharger la méthode OnPaint().
Une fois que tu auras fait le travail dans le OnPaint(), tout sera "parfait".
Bien sur, un des arguments de OnPaint(), pe pour ne pas le citer, te fourni
l'accès au graphics de ta pictureBox (donc, n'utilise surtout pas dans le OnPaint() un createGraphics()).
Ensuite, tu peux dessiner ton image (ou bien faire le base.OnPAint()) puis ensuite, faire le draw sur le pe.Graphics fourni en argument !!!
Sans vouloir donner de leçon de programmation .Net, C'est LA solution pour faire quelque chose de propre et sans avoir à se poser ensuite la question du rafraichissement (faut-il un timer pour rafraichir, etc..)... La, le OnPaint()
est appelé à chaque fois que necessaire, voir à la suite d'un Invalidate()
(que tu peux appeler par exemple dans une propriété qui aurait une incidence sur le dessin à afficher)
Merci Monz je vais regarder ca meme si ca me parait complexe.
Partager