示例#1
0
        public BoardPanel(Board i_Board)
        {
            m_Board = i_Board;

            int size = m_Board.Size;

            m_Cells = new CellBox[size, size];

            for (int i = 0; i < size; i++)
            {
                ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, CellBox.ItemSize));
            }

            for (int i = 0; i < size; i++)
            {
                RowStyles.Add(new RowStyle(SizeType.Absolute, CellBox.ItemSize));
            }

            for (int row = 0; row < size; row++)
            {
                for (int col = 0; col < size; col++)
                {
                    CellBox cell = new CellBox(m_Board.GetCell(row, col), new EventHandler(OnCellClicked));
                    m_Cells[row, col] = cell;
                    Controls.Add(cell, col, row);
                }
            }

            Padding = new Padding(0);
            Size    = new Size(size * CellBox.ItemSize, size * CellBox.ItemSize);
        }
示例#2
0
        private void OnCellClicked(object sender, EventArgs e)
        {
            CellBox cellBox = (CellBox)sender;

            CellClicked?.Invoke(cellBox.Cell);
        }