美好的一天。我有一个Form1和两个类的程序。当我想在类之一中使用标签 1 时,它向我显示错误名称标签 1 在当前上下文中不存在。如何在课堂中使用标签 1 作为显示文本?
namespace snake_game
{
public class had
{
private Rectangle[] snakeRec;
private SolidBrush brush;
private int x, y, width, height;
public Rectangle[] SnakeRec
{
get { return snakeRec; }
}
public had()
{
snakeRec = new Rectangle[3];
brush = new SolidBrush(Color.Black);
x = 20;
y = 0;
width = 10;
height = 10;
for (int i = 0; i < snakeRec.Length; i++)
{
snakeRec[i] = new Rectangle(x, y, width, height);
x -= 10;
}
}
...................................................
............
public void drawSnake()
{
for (int i = snakeRec.Length - 1; i > 0; i--)
{
snakeRec[i] = snakeRec[i - 1];
for (int j = 1; j < snakeRec.Length; j++)
if (snakeRec[i].X == snakeRec[j].X && snakeRec[i].Y == snakeRec[j].Y)
{
label1.Text = "------"; //here is problem//
}
}
}
你不能
,因为你不想那样做。
您有一个类had
,这是一个模型类。您不希望模型调用视图(标签)。
你想用MVC模式构建你的软件,因为它很好。这是控制器(Form1 代码隐藏),它将调用您的模型 ( had
) 来更新视图的标签 (Form1)。
例如:
public class had
{
public void moveDown()
{
snakeRec[0].Y += 10;
}
}
public class Form1 : Form
{
private had _model;
public void moveDown()
{
_model.MoveDown();
this.drawSnake();
}
public void drawSnake()
{
for (int i = this._model.snakeRec.Length - 1; i > 0; i--)
{
....
label1.Text = "------";
....
}
}
}