Моя задача - создать свой делегат и событие.Count считает число, когда происходит событие, прямоугольник рисуется на Form1.Ошибок не возникает, но рисование прямоугольника не происходит.Метод рисования прямоугольника в классе Rect.Я не могу понять, почему?Count.cs
public delegate void MyDel(object sender, MyEventArgs e);
public class MyEventArgs
{
public Graphics G { get; set; }
public MyEventArgs(Graphics g) { G = g; }
}
class Count
{
Graphics g;
public event MyDel DrawIt;
public int N { get; set; }
public Count(int n) { N = n; }
public void CountIt(int N)
{
int a = 0;
for (int i = 0; i < N; i++)
{
a += i;
if (a > 10)
OnCount();
}
}
public void OnCount()
{
MyDel handler = DrawIt;
if (handler != null)
handler(this, new MyEventArgs(g));
}
}
Rect.cs
class Rect
{...
public void DrawRect(Graphics g){g.DrawRectangle(P, X, Y, Width, Height);}
}
Form1.cs
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Graphics g = this.CreateGraphics();
Count c = new Count(10);
Rect r = new Rect(new Pen(Color.Red, 5), 50, 50, 100, 100);
c.DrawIt += (s, e) => { r.DrawRect(g); };
}
}
Спасибо.