J'ai cette fois un problème avec les nouvelles méthodes de dessin (je viens
du monde VB6).
Je souhaite dessiner des lignes sur un PictureBox.
J'ai donc mis :
Dim g as Graphics
g = PictureBox1.CreateGraphics
Là, pas de souci, g.DrawLine (Pens.Aqua 10, 10, 20, 20) me fait exactement
ce que je veux.
Le problème, c'est que je dois aussi dessiner sur une PictureBox qui n'est
pas sur le form "qui dessine".
J'ai donc modifié :
Public g as Graphics
g = frmMain.PictureBox1.CreateGraphics
(ces deux lignes sont dans un module)
Et là, plus rien ne s'affiche sur ma form frmMain
Je ne comprends pas où peut être l'erreur.
Si quelqu'un peut m'aider.
Voilà où j'en suis avec mes dessins sur PictureBox :
Public mGraphicsBMP As Bitmap
Protected mGraphicsMem As Graphics
mGraphicsBMP = New Bitmap(mPicDest.ClientRectangle.Width, mPicDest.ClientRectangle.Height)
mGraphicsMem = Graphics.FromImage(mGraphicsBMP)
lBrush = New SolidBrush(pColor)
mGraphicsMem.FillRectangle(lBrush, pRect)
et dans l'événement Paint du PictureBox
e.Graphics.DrawImage(mGraphicsBMP, 0, 0)
Séb
"Emmanuel DURAND @wanadoo.fr>" <edurand<NOSPAM> a écrit dans le message de news:
Voilà où j'en suis avec mes dessins sur PictureBox :
Public mGraphicsBMP As Bitmap Protected mGraphicsMem As Graphics mGraphicsBMP = New Bitmap(mPicDest.ClientRectangle.Width, mPicDest.ClientRectangle.Height) mGraphicsMem = Graphics.FromImage(mGraphicsBMP) lBrush = New SolidBrush(pColor) mGraphicsMem.FillRectangle(lBrush, pRect)
et dans l'événement Paint du PictureBox e.Graphics.DrawImage(mGraphicsBMP, 0, 0)
Bonsoir,
Ca répond effectivement à mes problème, au moins en partie (il y a encore qq soucis de rafraichissement). Mais c'est un bon début pour que je puisse progresser. Merci bcp.
Séb
"Emmanuel DURAND @wanadoo.fr>" <edurand<NOSPAM> a écrit dans le message de
news: uZlzIEa9FHA.2264@tk2msftngp13.phx.gbl...
Voilà où j'en suis avec mes dessins sur PictureBox :
Public mGraphicsBMP As Bitmap
Protected mGraphicsMem As Graphics
mGraphicsBMP = New Bitmap(mPicDest.ClientRectangle.Width,
mPicDest.ClientRectangle.Height)
mGraphicsMem = Graphics.FromImage(mGraphicsBMP)
lBrush = New SolidBrush(pColor)
mGraphicsMem.FillRectangle(lBrush, pRect)
et dans l'événement Paint du PictureBox
e.Graphics.DrawImage(mGraphicsBMP, 0, 0)
Bonsoir,
Ca répond effectivement à mes problème, au moins en partie (il y a encore qq
soucis de rafraichissement). Mais c'est un bon début pour que je puisse
progresser. Merci bcp.
"Emmanuel DURAND @wanadoo.fr>" <edurand<NOSPAM> a écrit dans le message de news:
Voilà où j'en suis avec mes dessins sur PictureBox :
Public mGraphicsBMP As Bitmap Protected mGraphicsMem As Graphics mGraphicsBMP = New Bitmap(mPicDest.ClientRectangle.Width, mPicDest.ClientRectangle.Height) mGraphicsMem = Graphics.FromImage(mGraphicsBMP) lBrush = New SolidBrush(pColor) mGraphicsMem.FillRectangle(lBrush, pRect)
et dans l'événement Paint du PictureBox e.Graphics.DrawImage(mGraphicsBMP, 0, 0)
Bonsoir,
Ca répond effectivement à mes problème, au moins en partie (il y a encore qq soucis de rafraichissement). Mais c'est un bon début pour que je puisse progresser. Merci bcp.
Séb
Séb
Re-bonsoir,
Le code a été adapté et fonctionne presque bien :
En fait, rien ne s'affiche sur le PictureBox, magré des frmMain.PictureBox1.Refresh que je peux mettre partout. En revanche, si je passe une fenêtre ou une boite de dialogue au dessus de la zone, le dessin s'affiche bien lorsque la zone réapparait. Une idée, sur cette dernière étape ??
Merci,
Séb
Re-bonsoir,
Le code a été adapté et fonctionne presque bien :
En fait, rien ne s'affiche sur le PictureBox, magré des
frmMain.PictureBox1.Refresh que je peux mettre partout.
En revanche, si je passe une fenêtre ou une boite de dialogue au dessus de
la zone, le dessin s'affiche bien lorsque la zone réapparait.
Une idée, sur cette dernière étape ??
En fait, rien ne s'affiche sur le PictureBox, magré des frmMain.PictureBox1.Refresh que je peux mettre partout. En revanche, si je passe une fenêtre ou une boite de dialogue au dessus de la zone, le dessin s'affiche bien lorsque la zone réapparait. Une idée, sur cette dernière étape ??