私はメソッド CreateGrid() を持っています:
public void CreateMyGrid()
{
g = pictureBox1.CreateGraphics();
for (int c = 0; c < columns; c++)
{
for (int r = 0; r < rows; r++)
{
g.DrawRectangle(pen1, cellSize * c, cellSize * r, cellSize, cellSize);
Cell newCell = new Cell(rows * columns, new Vector(c, r));
newCell.rectangle = new Rectangle(cellSize * c,
cellSize * r,
cellSize,
cellSize);
gridList.Add(newCell);
}
}
foreach (Cell cell in gridList)
{
if (cell.positionCR.X == start.X && cell.positionCR.Y == start.Y)
{
g.DrawImage(potato, cell.rectangle.X + 1, cell.rectangle.Y + 1);
}
if (cell.positionCR.X == goal.X && cell.positionCR.Y == goal.Y)
{
g.DrawImage(cake, cell.rectangle.X + 1, cell.rectangle.Y + 1);
}
}
}
Button_Click でまったく同じコードを呼び出すと、グリッドが描画されます。しかし、次のようにコンストラクターでメソッドを呼び出すと:
public Form1()
{
InitializeComponent();
CreateMyGrid();
}
何も起こりません。