I'm drawing graphics on a picturebox by passing the Graphics parameter to the method in a custom control.
Basically, I draw a line on my picturebox. Then I pass the Graphics reference to the method of a custom control which in turn draws some text string on my picturebox.
Here is the code snippet (c++/cli for the mainform and c# for the custom control):
//Main Form.h picturebox pain event MainFunction() { Pen^ aPen = gcnew Pen(Color::Cyan); Pen^ aRedPen = gcnew Pen(Color::Red); Graphics^ myGraph = e->Graphics; myGraph->Clear(Color.Black); myGraph->DrawLine(aRedPen, Point(50,100), Point(30,49)); if (addSomeText) { Pen^ aPen = gcnew Pen(Color::Red); aPen->Width = 1.2; customcontorl->anotherControl(myGraph, aPen); } }
In a custom control I have such a method...
/method in custom control.cs class public void anotherControl(ref Graphics g, ref Pen aPen) { Font drawFont = new Font("Arial", 16); SolidBrush drawBrush = new SolidBrush(aPen.Color); StringFormat drawFormat = new StringFormat(); g.DrawString("Some text...", drawFont, drawBrush, new Point(3, 30)); drawFont.Dispose(); drawBrush.Dispose(); drawFormat.Dispose(); }The strange thing is that I cannot clear the Graphics.
What is the correct way to draw Graphics from another control into a picturebox in the main form?