Попытка поднять событие c#

Я изучал МНОГИЕ другие ответы и примеры по этому поводу, и я все больше и больше запутался в том, как это настроить. Мне нужно вызвать событие в классе Robot на основе результата метода PerformMove в классе формы. Я знаю, что не могу вызвать событие из другого класса, поэтому то, что у меня есть, явно не работает. Но я действительно не понимаю, как настроить это правильно. Я читал статьи о делегатах и ​​событиях на codeProject, dreamInCode и на этом сайте, среди многих других. Это для начального класса С#, и я довольно новичок в этом, как я уверен, каждый может сказать :)

namespace Assignment12
{
    public delegate void ErrorHandler();

public partial class frmRobot : Form
{
    Robot moveRobot = new Robot();

    public frmRobot()
    {
        InitializeComponent();
        reset_Position();
        current_Position_Display();
        moveRobot.outOfRange += new ErrorHandler(moveRobot.coor_Within_Range);
    }
    ...

    private void performMove()
    {
        Point loc = lblArrow.Location;
        int x = moveRobot.Move_Robot_XAxis(loc.X);
        int y = moveRobot.Move_Robot_YAxis(loc.Y);
        if (x < -100 && x > 100)
        {
            moveRobot.outOfRange();
            x = loc.X;
        }
        if (y < -100 && y > 100)
        {
            moveRobot.outOfRange();
            y = loc.Y;
        }
        this.lblArrow.Location = new Point(x, y);
        current_Position_Display();
    }

class Robot
{

    public event ErrorHandler outOfRange;
    ...
    public void coor_Within_Range()
    {
        System.Console.WriteLine("TestOK");

    }
}
5
задан Nitesh 26 September 2012 в 07:52
поделиться