Рисование фигуры с использованием делегата - PullRequest
0 голосов
/ 21 февраля 2019

Моя задача - создать свой делегат и событие.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); };            
    }        
}

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...