我一直在研究有关此的许多其他答案和示例,但我对如何设置它越来越感到困惑。我需要根据表单类中 performMove 方法的结果在 Robot 类中引发一个事件。我知道我不能从另一个班级提出这个事件,所以我所拥有的显然是行不通的。但我真的不知道如何正确设置它。我已经阅读了关于 codeProject、dreamInCode 以及在这个网站上的代表和活动文章,等等。这是针对初学者的 c# 课程,我对此很陌生,因为我相信每个人都能说出来:)
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");
}
}