嘿傢伙即時嘗試使用createMap.cs中的函數在form1上創建圖片框。但是,一旦我調用該函數沒有pictureboxes正在繪製form1?我做錯了什麼?C#Picturebox不會顯示在form1.cs上?
香港專業教育學院還試圖調試它,它似乎從我可以告訴很好..
所以...爲什麼沒有pictureboxes?
Form1.cs中:
private void Form1_Load(object sender, EventArgs e)
{
createMap CreateMap = new createMap();
CreateMap.renderMap();
}
public void createTile(int x, int y, int tile)
{
PictureBox tempTile = new PictureBox();
tempTile.Location = new Point(20, 40);
tempTile.Image = Resources.stone;
Controls.Add(tempTile);
}
createMap.cs:
public void renderMap()
{
int[,] mapArray = new int[10,10]{
{2,2,2,2,2,2,2,2,2,2},
{2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,1,1,1,1,1,2},
};
Form1 canvas = new Form1();
MessageBox.Show(mapArray.GetLength(0) + ":" + mapArray.GetLength(1));
MessageBox.Show(mapArray[1, 1] + ":" + mapArray[2, 2]);
for(int x = 0; x < mapArray.GetLength(0); x++)
{
for(int y = 0; y < mapArray.GetLength(1); y++)
{
Debug.WriteLine("X:" + x + " Y: " + y + " Tile: " + mapArray[x,y]);
if (mapArray[x, y] == 1)
{
canvas.createTile(0, 0, 1);
PictureBox tile = new PictureBox();
tile.Location = new Point(20, 20);
tile.Image = Resources.dirt;
canvas.Controls.Add(tile);
}
if (mapArray[x, y] == 2)
{
canvas.createTile(0, 0, 2);
PictureBox tile = new PictureBox();
tile.Location = new Point(20, 40);
tile.Image = Resources.stone;
canvas.Controls.Add(tile);
}
canvas.Update();
}
}
}
我把它移出了功能,它仍然不顯示圖像?或者我必須通過form1來創建一個構造函數或其他東西? – user3585434
修正了它,謝謝。 – user3585434
@ user3585434 對不起,我無法迴應您的評論,但我很高興你修復它。 –