Пример #1
0
        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);
        }
Пример #2
0
        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);
        }