Dynamic programming of a grid consisting of 64 buttons (8x8)

I am trying to create a chess game exclusively for teaching C # and chess. Just for starters, I would like to create a grid of 8x8 buttons via code, not a designer. This will save me a hard coding of each button individually.

A button layout may seem like a good way, but I don't know how to implement it.

+8
arrays c # button winforms grid
source share
3 answers
int ButtonWidth = 40; int ButtonHeight = 40; int Distance = 20; int start_x = 10; int start_y = 10; for (int x = 0; x < 8; x++) { for (int y = 0; y < 8; y++) { Button tmpButton = new Button(); tmpButton.Top = start_x + (x * ButtonHeight + Distance); tmpButton.Left = start_y + (y * ButtonWidth + Distance); tmpButton.Width = ButtonWidth; tmpButton.Height = ButtonHeight; tmpButton.Text = "X: " + x.ToString() + " Y: " + y.ToString(); // Possible add Buttonclick event etc.. this.Controls.Add(tmpButton); } } 
+4
source share

You can create a "square" class:

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; class Square:PictureBox { private bool color; private char piece; } 

and define an array to place 8x8 squares.

 public partial class Form1 : Form { Square[,] square = new Square[8, 8]; public Form1() { InitializeComponent(); int i, j; for (i = 0; i < 8; i++) { for (j = 0; j < 8; j++) { this.square[i, j] = new Square();//Creating the chess object// this.square[i, j].BackColor = System.Drawing.SystemColors.ActiveCaption; this.square[i, j].BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.square[i, j].Location = new System.Drawing.Point(57 + i * 40, 109 + j * 40); this.square[i, j].Name = "chessBox1"; this.square[i, j].Size = new System.Drawing.Size(40, 40); this.square[i, j].TabIndex = 2; this.square[i, j].TabStop = false; this.Controls.Add(this.square[i, j]); } } } } 
+8
source share

You may use the code below to solve your problem. This code has a Windows Form application in C #. And for the control button.

  for (int i = 0; i< 8; i++) { for (int j = 0; j < 8; j++) { Button BtnNew = new Button; BtnNew.Height = 80; BtnNew.Width = 80; BtnNew.Location = new Point(80*i, 80*j); this.Controls.Add(BtnNew); } } 
+1
source share

All Articles