Dessiner dans une PictureBox à partir d'un Form [Résolu]

Civispacem 3 Messages postés jeudi 26 novembre 2009Date d'inscription 9 août 2011 Dernière intervention - 9 août 2011 à 17:00 - Dernière réponse : Civispacem 3 Messages postés jeudi 26 novembre 2009Date d'inscription 9 août 2011 Dernière intervention
- 9 août 2011 à 23:15
Bonjour,

Je souhaiterais dessiner dans une PictureBox en écrivant le code nécessaire dans un Formulaire.
J'ai écris le code ci-dessous, mais le trait rouge ne se dessine dans la PictureBox que si je clique sur Button1.
Je voudrais en fait que le trait se dessine sans que je sois obligé de cliquer sur le Button1.
Merci d'avance de bien vouloir m'aider si c'est possible.
(ps:j'utilise VB 2010 Express)

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

PictureBox1.CreateGraphics().DrawLine(Pens.Red, 0, 25, 400, 25)

End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

PictureBox1.CreateGraphics().DrawLine(Pens.Red, 0, 25, 400, 25)

End Sub
End Class
Afficher la suite 

4 réponses

Répondre au sujet
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 9 août 2011 à 21:19
+3
Utile
Salut
Il faut écrire les fonctions graphiques à l'évenement Paint de ta picturebox
tu peux écrire une sub qui dessine

private sub Testdraw(ByVal gr As System.Drawing.Graphics)
 Dim mypen As New Pen(Color.red, 2)
  'dessine la diagonal de gauche en haut 
  gr.DrawLine(mypen,0,0,pic1.width,pic1.height)
end sub 


et appeller la sub testdraw dans l'évenement
paint de ta picturebox disons pic1

Private Sub Pic1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Pic1.Paint
        Testdraw(e.Graphics)
End Sub
Cette réponse vous a-t-elle aidé ?  
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 - 9 août 2011 à 18:36
0
Utile
Bonjour,
je ne vois rien qui t'en empêcherait !
Il faudra peut-être toutefois éviter de le faire dans l'évènement load (qui est celui du chargement de ton Form, alors qu'il en est à se dessiner lui-même et que ta PictureBox n'est pas encore chargée)


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
Civispacem 3 Messages postés jeudi 26 novembre 2009Date d'inscription 9 août 2011 Dernière intervention - 9 août 2011 à 19:09
0
Utile
Merci pour ta réponse,

J'ai essayé de mettre la ligne PictureBox1.CreateGraphics().DrawLine(Pens.Red, 0, 25, 400, 25) dans l'évènement Paint et Got Focus du Form1, mais le trait ne se dessine toujours pas. Je ne comprend pas pourquoi.
Commenter la réponse de Civispacem
Civispacem 3 Messages postés jeudi 26 novembre 2009Date d'inscription 9 août 2011 Dernière intervention - 9 août 2011 à 23:15
0
Utile
Merci ShayW,

J'ai essayé le code que tu m'as fournit et il marche très bien. C'est très sympa de m'avoir aidé car j'ai pas mal cherché sur internet pour résoudre ce problème et je n'ai rien trouvé. (Et encore merci également à ucfoutu pour son aide).
Commenter la réponse de Civispacem

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.