private void RefreshList() { SuspendLayout(); for (int i = fieldBoxes.Count; i < pieces.Count; ++i) { var box = new ChessFieldBox(); box.Location = new Point(3 + (box.Width + 3) * i, 3); Controls.Add(box); fieldBoxes.Add(box); } while (fieldBoxes.Count > pieces.Count) { Controls.Remove(fieldBoxes[fieldBoxes.Count - 1]); fieldBoxes.RemoveAt(fieldBoxes.Count - 1); } for (int i = 0; i < pieces.Count; ++i) { fieldBoxes[i].Image = pieces[i].Image(); } hScrollBar.Visible = 3 + 53 * fieldBoxes.Count < Width; ResumeLayout(true); }
private void InitializeBoard() { panTable.SuspendLayout(); for (int i = 0; i < 8; ++i) { var labColumn = new Label(); labColumn.Location = new Point(20 + 53 * i, 0); labColumn.AutoSize = false; labColumn.Size = new Size(50, 20); labColumn.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; labColumn.Text = ((char)('A' + i)).ToString(); panTable.Controls.Add(labColumn); var labRow = new Label(); labRow.Location = new Point(0, 20 + 53 * i); labRow.AutoSize = false; labRow.Size = new Size(20, 50); labRow.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; labRow.Text = ((char)('8' - i)).ToString(); panTable.Controls.Add(labRow); for (int j = 0; j < 8; ++j) { var fieldBox = new ChessFieldBox(); fieldBox.Location = new Point(20 + 53 * i, 20 + 53 * (7 - j)); fieldBox.BackColor = (i + j) % 2 == 0 ? Color.Peru : Color.Cornsilk; fieldBox.Click += FieldBox_Click; fieldBox.Tag = Tuple.Create(i, j); panTable.Controls.Add(fieldBox); fieldBoxes[i, j] = fieldBox; } } panTable.ResumeLayout(false); }