Bardzo proszę o pomoc w rozwiązaniu mojego problemu. Wujek Google niestety nie dał rady, a ja już nie mam pomysłów.
Piszę program za pomocą WindowsForms, który ma mieć możliwość rysowania różnych elementów w PictureBox'ie.
Stworzyłem klasę MyPictureBox która dziedziczy po PictureBox'ie i wygląda tak:
class MyPictureBox : PictureBox
{
Bitmap bmp;
Graphics g;
public MyPictureBox()
{
bmp = new Bitmap(this.Width, this.Height);
g = Graphics.FromImage(bmp);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Pen pen1 = new Pen(Color.Green, 2.0f);
g.DrawEllipse(pen1, 20, 20, 400, 400);
this.Image = bmp;
this.Invalidate(); // odświeżanie PictureBox'a
g.Dispose(); // uwolnienie Graphics
}
}
Oprócz pliku z tą klasą, mój projekt zawiera pliki:
- plik główny formatki czyli Form1.cs - tutaj nic jeszcze nie wpisałem.
- plik designera formatki czyli Form1.Designer.cs - tutaj dodałem inicjalizację oraz ułożenie PictureBox'a na formatce.
Po uruchomieniu programu, PictureBox pojawia się na formatce, ale po króciutkiej chwili zostaje rzucony wyjątek "Parametr jest nieprawidłowy" w linii:
g.DrawEllipse(pen1, 20, 20, 400, 400);
Szukam w Google'ach, kombinuję i za Chiny nie mogę zczaić dlaczego rzucony jest ten wyjątek. Będę bardzo wdzięczny za pilną pomoc!