Dessiner dans une PictureBox à partir d'un Form

Résolu
Civispacem Messages postés 3 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 9 août 2011 - 9 août 2011 à 17:00
Civispacem Messages postés 3 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 9 août 2011 - 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

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
9 août 2011 à 21:19
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
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 août 2011 à 18:36
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
0
Civispacem Messages postés 3 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 9 août 2011
9 août 2011 à 19:09
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.
0
Civispacem Messages postés 3 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 9 août 2011
9 août 2011 à 23:15
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).
0
Rejoignez-nous