пройти по сетке кнопок GUI в c# - PullRequest
0 голосов
/ 08 мая 2020

Недавно я создал программу-решатель судоку в c#, и теперь я пытаюсь создать визуальную GUI игру-судоку на основе моего недавнего кода. Теперь я разместил кнопки внутри панели и увидел, что я могу перемещаться по кнопкам на панели следующим образом:

 foreach (Button b in this.gamePanel.Controls);

однако ход кажется случайным, есть ли способ пройти эти кнопки за 2 для циклов, как если бы я проходил через матрицу?

Большое спасибо :) Сетка кнопок, которую я создал

1 Ответ

0 голосов
/ 08 мая 2020

Попробуйте следующее:

    public partial class Form1 : Form
    {
        const int WIDTH = 60;
        const int HEIGHT = 60;
        const int SPACE = 3;
        const int ROWS = 9;
        const int COLS = 9;
        List<List<Button>> buttons = new List<List<Button>>();
        public Form1()
        {
            InitializeComponent();

            for (int row = 0; row < ROWS; row++)
            {
                List<Button> newRow = new List<Button>();
                buttons.Add(newRow);
                for (int col = 0; col < COLS; col++)
                {
                    Button newButton = new Button();
                    newButton.Width = WIDTH;
                    newButton.Height = HEIGHT;
                    newButton.Top = row * (HEIGHT + SPACE);
                    newButton.Left = col * (WIDTH + SPACE);
                    newButton.BackColor = (row / 3 + col / 3) % 2 == 0 ? Color.Red : Color.Black;
                    newRow.Add(newButton);
                    panel1.Controls.Add(newButton);
                }
            }


        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...