Вы должны включить дополнительные 5
пикселей padding
в Location
:
...
int padding = 5;
...
Location = new Point(x * (size + padding), y * (size + padding))
...
Давайте извлечем метод:
private void CreateGameField() {
int size = 20;
int padding = 5;
int quantity = 10;
Random rnd = new Random();
for (int y = 0; y < quantity; ++y)
for (int x = 0; x < quantity; ++x)
new Panel() {
Size = new Size(size, size),
Location = new Point(x * (size + padding), y * (size + padding)),
BorderStyle = BorderStyle.FixedSingle,
BackColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256)),
Parent = this, // instead of Controls.Add(panel);
};
}
Затем
private void Form1_Load(object sender, EventArgs e) {
CreateGameField();
}
FromLoad
обработчик событий - хорошее место для создания игрового поля; если вы хотите, вы можете поместить CreateGameField()
в конструкторе, но поставить после InitializeComponent()
:
public Form1() {
InitializeComponent();
CreateGameField();
}